Linux定时删除日志的简单实现方法
导语
linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。
项目中会生成各种各样的日志,随着时间的推移,日志也是越来越多。超过一定时间的日志就没有了参考的价值,也会占用空间,所以一般的项目都会删除日志。本篇文章的需求是删除 7 天之前的日志,大致分为两步,一是删除日志的命令,二是设置定时任务。
删除指定时间的日志
首先是查找所有 7 天前的日志,使用 find 查找的时候加上 -mtime 参数,其含义为 查找在指定时间曾被更改过的文件或目录,单位以24小时计算。实例为 find you/path -mtime +7 -name '*.log'
,如下
查找完成了,接下来是删除。在上面语句的基础上,加上 -exec 参数可以实现删除,参数含义为 假设find指令的回传值为True,就执行该指令。所以完整的语句为 find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;
。实际执行下,删除 16 天之前的日志,不然下面没办法演示了
16 天之前只有一条日志,执行后再次查找不存在,说明删除成功。
设置定时任务
最后将命令添加定时任务。关于 crontab 命令以及执行时间的设定,可以查看下方的参考资料。
添加之前先来看下 14 天之前的日志
有一条日志。编辑定时任务,执行 crontab -e 将删除日志命令追加到末尾 */1 * * * * find you/path -mtime +14 -name '*.log' -exec rm -rf {} \;
,设定为每分钟执行一次。稍等一分钟,再来查看 14 天之前的日志
可以看到在添加定时任务之后,没有手动删除,日志已经被自动删除了。当然不需要每分钟来执行一次,将时间设定为每天 1 点的时间,最终定时任务以及删除日志命令如下
0 1 * * * find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;
参考资料:find 命令、 crontab 命令、linux 利用crontab添加定时任务。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
相关文章
centos下yum搭建安装linux+apache+mysql+php环境教程
本篇文章介绍了centos下yum搭建安装linux+apache+mysql+php环境,对学习centos有一定的参考价值,感兴趣的小伙伴们可以参考一下。2016-10-10apche 多端口配置及网站指向非apche默认的网站文件夹设置方法
apche 多端口配置及网站指向非apche默认的网站文件夹设置,使用apache做服务器的朋友可以参考下。2010-04-04浅析Linux中使用nohup及screen运行后台任务的示例和区别
这篇文章主要介绍了Linux中使用nohup及screen运行后台任务的示例和区别,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-07-07
最新评论