用logrotate为部署脚本日志配置专属规则即可实现按需切分与自动清理,无需额外调度;关键是在/etc/logrotate.d/下新建配置文件,设置size、rotate等参数,并确保路径、权限匹配及定时机制正常。

直接用 logrotate 配置专属规则,就能实现脚本日志的按需切分与自动清理,无需写额外调度逻辑。关键在于把你的部署脚本日志路径纳入 logrotate 管理,并通过 size、daily、rotate 等参数精准控制切分节奏和保留策略。
为部署脚本日志单独建配置文件
不要改全局配置 /etc/logrotate.conf,直接在 /etc/logrotate.d/ 下新建一个文件(如 /etc/logrotate.d/deploy-scripts),内容示例如下:
/var/log/deploy/*.log {
size 50M
rotate 14
compress
delaycompress
missingok
notifempty
create 644 root root
sharedscripts
postrotate
# 可选:通知监控或刷新索引
true
endscript
}
说明:
• size 50M 表示日志单个文件超过 50MB 就立即切分,比单纯按天更贴合部署脚本“突发写入、不定频次”的特点;
• rotate 14 保留最近 14 个归档(如 deploy.log.1.gz 到 deploy.log.14.gz),超期自动删除;
• delaycompress 让最新一份(.1)暂不压缩,方便快速查看;
• sharedscripts + postrotate 为后续扩展留接口,比如触发日志分析或告警。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
确保日志路径和权限匹配
你的部署脚本必须把日志写入配置中指定的路径(如 /var/log/deploy/),且该目录需满足:
- 属主为 root 或部署脚本运行用户,权限至少为 755
- 若脚本以非 root 用户运行(如 deployer),则 create 行应改为 create 644 deployer deployer,并确保 logrotate 有权限写入该目录
- 避免路径含通配符错误,例如写成 /var/log/deploy/*.log 但实际日志是 /var/log/deploy/run.log,会导致轮转不生效
验证配置并确认定时机制就绪
logrotate 不是常驻服务,它靠系统 cron 每日触发(通常在 /etc/cron.daily/logrotate)。执行以下命令确认是否正常:
- 语法检查:运行 sudo logrotate -d /etc/logrotate.d/deploy-scripts,看输出是否识别到你的日志路径、无 error 提示
- 强制试运行:执行 sudo logrotate -f /etc/logrotate.d/deploy-scripts,观察 /var/log/deploy/ 下是否生成 .1 文件、原日志是否清空或重命名
- 查定时状态:运行 systemctl list-timers | grep logrotate,确认 timer 处于 active 状态;也可检查 ls -l /etc/cron.daily/logrotate
进阶:按业务场景灵活调整策略
不同部署脚本对日志要求不同,可针对性微调:
- 高频小量部署(如每小时发布):改用 hourly(需配合 systemd timer 或自定义 cron)+ rotate 48,保留两天内所有记录
- 关键回滚日志(如 rollback.log):单独配置,设 rotate 30 并启用 olddir /var/log/archive/deploy,集中归档防误删
- 避免截断丢失:若脚本不支持重开日志文件(如用 >> 追加且不响应信号),在配置中加 copytruncate —— 先复制再清空原文件,保障写入连续性










