Linux 只保留 30 天内日志(find命令删除日志文件)

Linux 只保留 30 天内日志,删除超 1 个月日志方案

一、核心命令(删除 30 天前文件,保留近 30 天)

1:清理log并打印删除记录,方便审计

bash 复制代码
find /data/logs -type f -name "*.log" -mtime +30 -print -delete

-print会输出每一个被删除的文件路径,可重定向到清理日志存档:

bash 复制代码
find /data/logs -type f -name "*.log" -mtime +30 -print -delete >> /var/log/log_clear.log

2:排除指定重要文件不清理

bash 复制代码
#操作前可执行以下命令,先预览要删除的文件
find /data/logs -type f -name "*.log" -mtime +30 ! -name "important.log"
#安全删除,-print 同步打印已删文件
find /data/logs -type f -name "*.log" -mtime +30 ! -name "important.log" -print -delete

3:仅清理当前一级目录,不递归子目录(防止误删子业务归档)

bash 复制代码
#先预览,不删除,核对待清理文件
find /data/logs -maxdepth 1 -type f -name "*.log" -mtime +30 -ls
#删除操作
find /data/logs -maxdepth 1 -type f -name "*.log" -mtime +30 -print -delete

补充参数说明

  • -type f:只匹配磁盘上真实普通文件,排除文件夹,可规避误删软链接指向文件的问题
  • -name "*.log":只处理 log 后缀日志,可去掉匹配所有文件
  • -mtime +30:文件最后修改时间距今大于30天;
    -mtime -30 = 30天内的文件;-mtime 30 = 刚好30天
  • ! 逻辑取反,等价于 -not
  • -maxdepth 1仅扫描当前一级目录,不进入任何子文件夹递归查找,必须紧跟查找目录后,写在其他过滤参数后面会失效;
  • -delete 无预览直接删除,必须放在命令末尾,否则会报错/逻辑异常。
相关推荐
2601_960567965 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧6 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈6 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HiDev_6 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling7 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind7 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森7 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客7 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝8 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维