温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux定时删除日志的简单实现方法

发布时间:2020-10-15 10:20:26 来源:脚本之家 阅读:338 作者:haoyq 栏目:服务器

导语

linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。

项目中会生成各种各样的日志,随着时间的推移,日志也是越来越多。超过一定时间的日志就没有了参考的价值,也会占用空间,所以一般的项目都会删除日志。本篇文章的需求是删除 7 天之前的日志,大致分为两步,一是删除日志的命令,二是设置定时任务。

删除指定时间的日志

首先是查找所有 7 天前的日志,使用 find 查找的时候加上 -mtime 参数,其含义为 查找在指定时间曾被更改过的文件或目录,单位以24小时计算。实例为 find you/path -mtime +7 -name '*.log',如下

Linux定时删除日志的简单实现方法

查找完成了,接下来是删除。在上面语句的基础上,加上 -exec 参数可以实现删除,参数含义为 假设find指令的回传值为True,就执行该指令。所以完整的语句为 find you/path -mtime +7 -name '*.log' -exec rm -rf {} \; 。实际执行下,删除 16 天之前的日志,不然下面没办法演示了

Linux定时删除日志的简单实现方法

16 天之前只有一条日志,执行后再次查找不存在,说明删除成功。

设置定时任务

最后将命令添加定时任务。关于 crontab 命令以及执行时间的设定,可以查看下方的参考资料。
添加之前先来看下 14 天之前的日志

Linux定时删除日志的简单实现方法

有一条日志。编辑定时任务,执行 crontab -e 将删除日志命令追加到末尾 */1 * * * * find you/path -mtime +14 -name '*.log' -exec rm -rf {} \; ,设定为每分钟执行一次。稍等一分钟,再来查看 14 天之前的日志

Linux定时删除日志的简单实现方法

可以看到在添加定时任务之后,没有手动删除,日志已经被自动删除了。当然不需要每分钟来执行一次,将时间设定为每天 1 点的时间,最终定时任务以及删除日志命令如下

0 1 * * * find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;

Linux定时删除日志的简单实现方法

参考资料:find 命令、 crontab 命令、linux 利用crontab添加定时任务。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI