在一定时间后创建了一些带有时间戳的日志文件。
/mylog/path
Log_file_2018-07-19-22-55-31Z.tgz
Log_file_2018-07-20-01-29-11Z.tgz
Log_file_2018-07-20-10-36-49Z.tgz
Log_file_2018-07-21-18-26-36Z.tgz
我需要根据日期删除旧日志。例如,我只想要最近 5 天的日志,并且应该删除较旧的日志。每天创建的日志文件数量各不相同。如何做到这一点?
在一定时间后创建了一些带有时间戳的日志文件。
/mylog/path
Log_file_2018-07-19-22-55-31Z.tgz
Log_file_2018-07-20-01-29-11Z.tgz
Log_file_2018-07-20-10-36-49Z.tgz
Log_file_2018-07-21-18-26-36Z.tgz
我需要根据日期删除旧日志。例如,我只想要最近 5 天的日志,并且应该删除较旧的日志。每天创建的日志文件数量各不相同。如何做到这一点?
您可以 在命令中使用
mtime
(修改时间) 。find
-mindepth 1
表示处理除命令行参数之外的所有文件。-mtime +5
将检查 5 天前修改的文件。-delete
将删除由于您的 find 没有
-mtime
选项,我认为这是最简单的方法:如果您总是想在日志文件老化五天后删除它们,但由于某种原因不想使用
logrotate
,您可以使用cron
(crontab -e
编辑 crontab)每天运行以下脚本: