我有一个 Ruby 文件,执行后会创建 XML 文件并保存。每次执行此操作时,文件的时间(上次修改时间)都是错误的(提前 1 小时)。我还注意到 cron 作业的执行时间比应执行的时间晚 1 小时。
通话date
和hwclock
命令行中我看到了正确的时间。如何修复?
答案1
这不是时钟问题,而是时区问题。为此,您必须了解 UTC 和本地时间之间的差异。
因此您的 Ruby 脚本可能看不到差异或误解了全局时区设置。但为了确保万无一失,您必须提供更多信息。例如,时钟设置为 UTC 还是本地时间?您的本地时区或与 UTC 的偏移量是多少?您使用哪个 Linux 发行版?阅读如何在特定 Linux 发行版中配置时区。
答案2
我最近在 Debian Lenny 盒子上遇到了类似的问题,当我想要当地时间时它被设置为 UTC。
首先,您需要将正确的区域信息文件从 复制(或符号链接)/usr/share/zoneinfo
到/etc/localtime
。例如,我ln -s -f /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
在我的系统上运行了 。
其次,您还需要进行编辑/etc/timezone
以反映您的时区。在我的系统上,文件显示America/Los_Angeles
。
一旦处理完这两个文件,最好重新启动 crond 以确保选择了正确的时区。