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 无预览直接删除,必须放在命令末尾,否则会报错/逻辑异常。
相关推荐
ltl2 小时前
实时 OS 巡礼:VxWorks、QNX、Zephyr 与 PREEMPT_RT
linux
我是谁??2 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
Shell运维手记2 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁3 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
Elastic 中国社区官方博客4 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记4 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
喜欢的名字被抢了5 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
雾时之林5 小时前
Linux----cron定时服务
linux·运维·服务器
壹玖玖肆5 小时前
医院后勤智能运维系统实用性评测
运维
wengqidaifeng6 小时前
1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
linux·运维·服务器·ubuntu