首页/系统/Linux 运维命令速查/场景:查找并批量删除 30 天前日志
本包目录(613 条)
文件与目录76 条
文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:查找并批量删除 30 天前日志

磁盘告警时的经典操作:按时间圈出历史日志,先预览数量与清单,再批量删除或归档。

Linux 运维命令速查系统更新于 2026-10-12
场景按 mtime 批量清理历史日志
工具find -mtime +30 -print/-delete / xargs
安全先 -print 核对,再执行删除

标准流程

标准流程
find /var/log/myapp -type f -name '*.log.*' -mtime +30 -print | head -50
find /var/log/myapp -type f -name '*.log.*' -mtime +30 | wc -l
find /var/log/myapp -type f -name '*.log.*' -mtime +30 -delete

文件极多时(命令行安全)

文件极多时(命令行安全)
find /var/log/myapp -type f -name '*.log.*' -mtime +30 -print0 | xargs -0 -r rm -v
上生产前在测试目录演练一遍;清理范围写具体路径与具体模式,永远不要对 / 直接 -delete。

易错点

  • -mtime +30 是「超过 30*24 小时」,需要按自然日边界就用 -newermt 组合
  • 模式要覆盖 .log.1、.log.gz 等轮转文件名,漏掉的还是占磁盘;同时确认没有程序还在写这些文件

数据来源与参考

  • man 1 find(GNU findutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌