在 Linux 服务器运维和开发过程中,“定时清理过期文件”是一个非常常见但又容易被忽视的需求。典型场景包括:
日志文件堆积:应用每天产生大量 .log 文件,长期不清理会占满磁盘,影响服务稳定性。
临时文件残留:程序运行过程中生成的 /tmp 临时文件、缓存文件,任务结束后未及时释放。
备份文件管理:数据库或代码备份按天/周生成,只希望保留最近一段时间的数据,历史备份需要自动淘汰。
如果不做清理,轻则磁盘告警,重则导致服务宕机。手动删除既低效又容易误删,因此通过命令或脚本自动化查找并删除“某个时间点之前”的文件,是 Linux 日常运维的必备技能。mtime(Modification Time):文件内容最后修改时间(最常用)
atime(Access Time):文件最后被访问的时间
ctime(Change Time):文件元数据(权限、属主等)最后变更时间
查看文件时间:stat filename
我们清理文件时,90% 的场景都推荐使用 mtime,因为它最能反映文件是否“过期”。
需要结合以下两个核心命令:
•find:按条件查找文件
•rm:删除文件(配合 -delete 或 -exec 或 xargs)
find /var/log -type f -mtime +7 -delete# 删除也可以 -exec find /var/log -type f -mtime +7 -exec rm -rf {} \;# 或者find /var/log -type f -mtime +7 |xargs rm -rf
- -mtime +7:7天前(修改时间在7*24小时之前)
find /var/log -type f -mmin +60 -delete
find /var/log -name "*.log" -type f -mtime +30 -delete
find /var -type d -empty -delete
如果本文对你有帮助,欢迎“点赞”、“分享”、“推荐”,也欢迎在留言区互动,感谢!
点关注,一起成长!