前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux定时删除日志的简单实现方法

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

原创
作者头像
用户4988085
发布2022-01-03 18:43:26
2.2K0
发布2022-01-03 18:43:26
举报
文章被收录于专栏:建站知识建站知识

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

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

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

代码语言:javascript
复制
find you/path -mtime +7 -name '*.log'

查找完成了,接下来是删除。在上面语句的基础上,加上 -exec 参数可以实现删除,参数含义为 假设find指令的回传值为True,就执行该指令。所以完整的语句为 。

代码语言:javascript
复制
find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;
16 天之前只有一条日志,执行后再次查找不存在,说明删除成功。

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

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

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

代码语言:javascript
复制
0 1 * * * find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档