介绍项目会产生各种日志,随着时间的推移,日志会越来越多。超过一定时间的日志没有参考价值,会占用空间,所以一般项目会删除日志。本文需求是删除7天前的日志,大致分两步,一是命令删除日志,二是设置定时任务。要删除指定时间的日志,首先要找到7天前的所有日志。使用find查找时,加上-mtime参数,表示查找在指定时间发生变化的文件或目录,单位以24小时计算。例子是findyou/path-mtime+7-name'*.log',下面搜索完成,下一步就是删除。在上述语句的基础上,加入-exec参数即可实现删除。参数的含义是假设find命令的返回值为True,则执行该命令。所以完整的语句是findyou/path-mtime+7-name'*.log'-execrm-rf{}\;。实际执行时,删除16天前的日志,否则无法证明16天前的日志只有一条,执行后再次不存在,则说明删除成功。设置定时任务,最后将命令添加到定时任务中。关于crontab命令和执行时间的设置,可以查看下面的参考资料。添加前先看看14天前的日志。有一个日志。编辑定时任务,执行crontab-e把删除日志的命令追加到最后*/1****findyou/path-mtime+14-name'*.log'-execrm-rf{}\;,设置为每分钟执行一次。稍等片刻,再查看14天前的日志,可以看到添加定时任务后,日志已经自动删除,无需手动删除。当然,你不需要每分钟都执行一次。每天把时间调到1点钟。最后的定时任务和删除日志命令如下01***findyou/path-mtime+7-name'*.log'-execrm-rf{}\;参考资料:find命令,crontab命令,linux使用crontab添加定时任务。
