常用运维脚本片段

更新时间:2025.04.17

← 返回首页
ShellDevOps脚本

日志轮转不要只靠 rm

应用日志应交给 logrotate 控制大小、保留天数和压缩节奏。服务支持重新打开日志文件时,用 postrotate 发送 HUP;否则需要确认服务自己的日志轮转策略。

/var/log/myapp/*.log {
  daily
  rotate 14
  compress
  missingok
  notifempty
  postrotate
    systemctl kill -s HUP myapp.service >/dev/null 2>&1 || true
  endscript
}

续期与健康检查

certbot 的 deploy hook 只在证书真正更新后执行,适合 reload Nginx;不要把 reload 放在每次定时任务后面。

certbot renew --deploy-hook 'systemctl reload nginx'

curl --fail --silent --show-error \
  --max-time 5 https://example.com/healthz

定时任务的退出码和日志比“有没有执行”更重要;失败应被监控系统采集,而不是只写到无人查看的临时文件。

先在 staging 演练证书续期和日志轮转,尤其确认 reload 是否会影响长连接或正在进行的上传。

相关笔记