技术与生活 / 一篇记录
同一条 cron,换台服务器就晚了八小时
同一条 cron 在不同时区的主机上会对应不同本地时刻。
cron 的时间表达式需要放在具体时区中解释。服务器、容器和云端调度平台不一定使用相同时区,夏令时地区还可能出现日期边界变化。
操作与观察
这是一条运维检查思路,具体阈值与工具要结合服务规模和实际部署环境选择。
date; crontab -l
记录主机时区并手工换算下一次执行时间。
把期望时刻写成带时区的清单,再换算到调度器使用的基准。检查任务日志时同样保留时区信息,避免把正确执行误认为发生在错误时间。
想确认下一次运行,不应仅凭自然语言“每六小时”推测。表达式通常表示固定时刻集合,并不意味着从上次手动运行结束后再延迟六小时,两种语义需要分清。
别遗漏这条边界
GitHub Actions 的 schedule 默认以 UTC 为基准,不应照搬服务器本地时间。
参考:运维 文档。