生成一个 适用于 /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针对当前日志文件