生成Linux自动定时清理日志管理脚本

Administrator
发布于 2025-07-25 / 2 阅读
0
0

生成Linux自动定时清理日志管理脚本

生成一个 适用于 /app/demo-home/logs 的自动日志管理脚本,功能如下:


✅ 脚本功能说明:

  • 每天保留最近 7 天的归档日志(biz-demo-home.log.YYYYMMDD

  • 自动删除 7 天前的归档日志(释放磁盘空间)

  • 自动压缩最近的 .log.YYYYMMDD 文件为 .gz

  • 当前活跃日志(biz-demo-home.log)保留不动


✅ 脚本内容:clean_demo_logs.sh

#!/bin/bash
​
# 日志目录
LOG_DIR="/app/demo-home/logs"
# 当前时间
NOW=$(date "+%Y-%m-%d %H:%M:%S")
​
echo "[$NOW] 开始日志清理任务..."
​
# 删除 7 天前的归档日志文件
find "$LOG_DIR" -type f -name "biz-demo-home.log.20*" -mtime +7 -exec rm -f {} \;
​
# 压缩 1~7 天之间的未压缩归档日志文件(如果没被压缩)
find "$LOG_DIR" -type f -name "biz-demo-home.log.20*" -mtime +1 -mtime -7 ! -name "*.gz" -exec gzip {} \;
​
echo "[$NOW] 日志清理完成。"

✅ 使用方式

1. 保存脚本

创建文件 /usr/local/bin/clean_demo_logs.sh

vim /usr/local/bin/clean_demo_logs.sh

粘贴上面的内容,保存并退出。

2. 添加执行权限

chmod +x /usr/local/bin/clean_demo_logs.sh

✅ 设置定时任务(每天凌晨 3 点自动执行)

编辑定时任务:

crontab -e

添加如下行:

0 3 * * * /usr/local/bin/clean_demo_logs.sh >> /var/log/clean_demo_logs.log 2>&1

✅ 验证是否配置成功:

查看当前定时任务列表:

crontab -l

🧩 补充建议

  • 可以配合 logrotate 限制当前活跃日志的大小(防止 biz-icf-home.log 无限增大)

  • 如果你愿意,我可以帮你一起配置 logrotate 针对当前日志文件


评论