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 无预览直接删除,必须放在命令末尾,否则会报错/逻辑异常。
相关推荐
小白的码BUG之路10 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
Frag0ut11 小时前
Chrome 2026 AI 能力全解析:从 Auto Browse 到 Skills,浏览器正在变成智能代理
chrome·ai·谷歌浏览器·gemini·智能代理·skills·auto browse
缓慢更新12 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾12 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
不昀12 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
迪康妍妍12 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn12 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
Lhan.zzZ13 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
zxcvb15313 小时前
运维经验分享:监控网页更新内容的几种思路
运维
Fcy64814 小时前
Linux下 多路转接select详解
linux·select·多路转接