利用find实现自动清理过期文件
场景
某目录用于产生日志或临时交换文件,希望自动删除72小时之前的文件。
实现
利用系统自带的find
命令根据修改时间对文件进行筛选并删除
find /var/log -type f -mtime +2 -delete
其中-mtime
可以替换为-mmin
以分钟为单位
注意这里有一个坑+x
理解为>x
的整数天
因此72小时应当描述为+2
而非+3
对应96小时
或增加-name *.log
对文件名进行进一步限制
加强
将上述命令与crontab
结合,实现自动清理
# m h dom mon dow command
0 * * * * find /var/log -type f -mtime +2 -delete
参考
find - Delete files older than X days + - Unix & Linux Stack Exchange
timestamps - Why does find -mtime +1 only return files older than 2 days? - Unix & Linux Stack Exchange