什么是真正的服务器时间? Linux的/ CentOS的

问候,

我试图找出什么时区的操作系统/ BIOS时钟? 正在运行。

问题是,如果TZ缺失或空,我怀疑date和ls恢复到TZ = UTC。

但是,如果TZ = America / Los_Angeles,或者America / Chicago,那么我知道LOCAL时区的设置。

但是我怎么知道Linux操作系统正在运行的时区呢? cron和其他守护进程的基础是什么?

-daniel

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

只是添加到已经说过的话, hwclock会根据BIOS告诉你date。

BIOSdate和系统date可能会发生不同步。 说到TZ,通常将BIOS设置为UTC时间,并让系统的date调整TZ,但有些人更喜欢将BIOS时间设置为当地时间。

我试图找出什么时区的操作系统/ BIOS时钟? 正在运行。问题是,如果TZ缺失或空,我怀疑date和LS恢复到TZ = UTC。

不,这是不正确的。 date,ls以及其他所有软件都不会在TZ未设置时恢复为UTC,而是使用默认时区。 在Linux上,缺省时区在文件/etc/localtime 。 查看文件很tzfile ,它是一个tzfile格式的二进制文件。 它是/usr/share/zoneinfo下的一个文件的符号链接或副本; 这些是不同时区的规则。

但是我怎么知道Linux操作系统正在运行的时区呢?

如果/etc/localtime是一个符号链接,只要看看它在哪里。 如果是文件,最好使用发行版的工具来查明。 在Debian下,使用

 dpkg-reconfigure tzdata 

(只要按取消马上不改变任何东西)。

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

cron和其他守护进程的基础是什么?

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

不幸的是,Cron是一个特例:有几个实现,它们处理时区的方式不同。 “Vixie cron”是Linux上常用的cron,它总是使用默认的时区。 一些crons(例如在BSD上)允许你在crontab中切换时区。 这是否是一个进步是值得商榷的