设置Linux时区

应该/etc/localtime (在RHEL 5.3下,不是我认为重要的)是:

  1. /usr/share/zoneinfo/whatever的符号链接
  2. 硬链接到/usr/share/zoneinfo/whatever
  3. /usr/share/zoneinfo/whatever的副本

我宁愿1),因为它明确,易于通过木偶pipe理,但它会打破什么? RedHat默认看起来是3)。 编辑 :我意识到跨文件系统,tzdata更新等symlinking通常的问题,但没有意识到历史no- / usr-during-rc.sysinit疑难杂症。 谢谢,所有!

3是首选的方法。 这是由于一个旧的bug,导致系统带有一个单独的/ usr分区,因为系统时间设置为UTC,因为在rc.sysinit中/ usr / share / zoneinfo不可用。 你可以查看下面的bugzilla

有一个复制的原因,而不是符号链接,例如,如果你有/ usr在单独的分区比/ /等,所以可能会在一些罕见的情况下的问题。

正如其他人之前所说的那样,将它作为文件的副本而不是符号链接(硬或软)只是一个更安全的标准。 这很大程度上取决于本地时间文件,它有损坏可能会导致问题。

另外还有方便的实用程序来处理这个问题,也许应该是系统最好的时区pipe理过程。 大多数linux系统将有tzselect可用,这将允许您select您希望系统使用的时区,并为您pipe理本地时间文件,而无需自己这样做。 我会build议使用这个工具,除非你有理由不这样做。

不同的分布以不同的方式处理这个问题。 我也喜欢使用符号链接,这应该没有任何区别。

您可能遇到的唯一可能的问题是原始文件更新path,因此符号链接断开,但这不太可能。

我觉得烦人的是,每次“tzdata”更新,它会改变我的时区,所以我使用3)与“chattr + i / etc / localtime”