linux是一个很能自动产生文件的系统,日志,邮件,备份等,虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。
项目中会生成各种各样的日志,随着时间的推移,日志也是越来越多。超过一定时间的日志就没有了参考的价值,也会占用空间,所以一般的项目都会删除日志。本篇文章的需求是删除7天之前的日志,大致分为两步,一是删除日志的命令,二是设置定时任务。
首先是查找所有7天前的日志,使用发现查找的时候加上-mtime参数,其含义为查找在指定时间曾被更改过的文件或目录,单位以24小时计算。实例为<代码>找你/路径-mtime + 7 - name ' * . log '> 代码,如下
查找完成了,接下来是删除。在上面语句的基础上,加上- exec参数可以实现删除,参数含义为假设找到指令的回传值为True,就执行该指令,所以完整的语句为<代码>找你/路径-mtime + 7 - name”*。日志的rm - rf{} \;> 代码。实际执行下,删除16天之前的日志,不然下面没办法演示了
16天之前只有一条日志,执行后再次查找不存在,说明删除成功。
最后将命令添加定时任务。关于crontab命令以及执行时间的设定,可以查看下方的参考资料。
添加之前先来看下14天之前的日志
有一条日志。编辑定时任务,执行crontab - e将删除日志命令追加到末尾<代码> */1 * * * *找你/路径-mtime + 14 - name ' *。日志的rm - rf{} \;> 代码,设定为每分钟执行一次。稍等一分钟,再来查看14天之前的日志
可以看到在添加定时任务之后,没有手动删除,日志已经被自动删除了。当然不需要每分钟来执行一次,将时间设定为每天1点的时间,最终定时任务以及删除日志命令如下
0 1 * * *找你/路径-mtime + 7 - name”*。日志的rm - rf {} \;
参考资料:找命令,crontab命令,linux利用crontab添加定时任务。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。