实时服务器时间是多少?Linux/CentOS

实时服务器时间是多少?Linux/CentOS

问候,

我正在尝试找出操作系统/BIOS 时钟所运行的时区。

问题是,如果 TZ 缺失或为空,我怀疑日期和 ls 会恢复为 TZ=UTC。

但是,如果 TZ=America/Los_Angeles 或 America/Chicago,那么我知道本地时区设置为何。

但是我如何知道 Linux 操作系统运行的时区? cron 和其他守护进程以什么为基础确定时区?

-丹尼尔

答案1

它基于 的内容/etc/localtime,来自 中的一个文件/usr/share/zoneinfo,可以使用tzselect或进行更改system-config-date

答案2

只是补充一下已经说过的内容,hwclock将根据 BIOS 告诉您日期。

BIOS 日期和系统日期可能会不同步。对于 TZ,通常将 BIOS 时间设置为 UTC,并让系统日期调整其 TZ,但有些人更喜欢将 BIOS 时间设置为当地时间。

答案3

我正在尝试找出操作系统/BIOS 时钟运行的时区。问题是,如果 TZ 缺失或为空,我怀疑日期和 ls 会恢复为 TZ=UTC。

不,这是不正确的。date、ls 以及几乎所有其他软件在未设置 TZ 时不会恢复为 UTC,它们会使用默认时区。在 Linux 上,默认时区设置在文件中/etc/localtime。查看该文件没有什么意义,因为它是二进制文件tzfile格式。它要么是符号链接,要么是 下某个文件的副本/usr/share/zoneinfo;这些是不同时区的规则。

但是我如何知道 Linux 操作系统所运行的时区?

如果/etc/localtime是符号链接,只需查看它指向的位置。如果是文件,最好使用发行版的工具来查找。在 Debian 下,使用

dpkg-reconfigure tzdata

(只需立即按“取消”即可不进行任何更改)。

在 RedHat 上,它是redhat-config-datesystem-config-date

cron 和其他守护进程根据什么确定其时区?

大多数守护进程只是使用系统默认时区。

不幸的是,Cron 是一个特殊情况:有几种实现,它们以不同的方式处理时区。“Vixie cron”是 Linux 上常见的 cron,它始终使用默认时区。一些 cron(例如在 BSD 上)允许您在 crontab 中切换时区。这是否是一种改进还有待商榷...

相关内容