应该/etc/localtime
(在 RHEL 5.3 下,我认为这并不重要)是:
- 一个符号链接
/usr/share/zoneinfo/whatever
- 硬链接
/usr/share/zoneinfo/whatever
- 一份
/usr/share/zoneinfo/whatever
我更喜欢 1) 因为它通过 Puppet 明确且易于管理,但它会破坏任何东西吗?RedHat 的默认外观为 3)。编辑:我知道在文件系统、tzdata 更新等之间进行符号链接的常见问题,但不知道历史上的 no-/usr-during-rc.sysinit 陷阱。谢谢大家!
3是首选方法。这是由于一个旧错误导致具有单独 /usr 分区的系统将系统时间设置为 UTC,因为 /usr/share/zoneinfo 在 rc.sysinit 期间不可用。您可以查看以下bugzilla
制作副本而不是符号链接是有原因的,例如,如果 /usr 位于与 / 或 /etc 不同的分区上,那么在极少数情况下可能会出现问题。
正如其他人之前所说,将其作为文件的副本而不是符号链接(硬或软)只是一个更安全的标准。很大程度上取决于本地时间文件,因此损坏它可能会导致问题。
还有一些方便的实用程序可以为您处理这个问题,这可能是您对系统进行时区管理的最佳过程。大多数 linux 系统都可以
tzselect
使用,它允许您选择您希望系统使用的时区并为您管理本地时间文件,而无需自己这样做。除非您有理由不这样做,否则我建议您使用此工具。不同的发行版以不同的方式处理这个问题。我也更喜欢使用符号链接,这应该没什么区别。
您可能遇到的唯一可能的问题是原始文件通过更新更改了路径,因此符号链接中断,但这不太可能。
我觉得烦人的是,每次“tzdata”更新时,它都会改变我的时区,所以我使用 3) 和“chattr +i /etc/localtime”