Date
為什麼本地時間會重置為預設時區?
我使用以下命令在我們的 Amazon Linux (Centos) 伺服器上設置時區:
ls -al /etc/localtime -rw-r--r-- 1 root root 118 25 dec 2012 /etc/localtime sudo mv /etc/localtime /etc/localtime.bak sudo ln -s /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
這會備份本地時間文件,因此您可以查看時間是否以及何時設置為正確的時區。最近時間已恢復為預設值。bak 文件還在那裡,所以我知道我過去更改了時間。
這是因為核心更新嗎?
為什麼時間不保持不變,有沒有辦法確保它保持不變?
更新
這是更新的本地時間文件的時間:
$ ls -al /etc/localtime -rw-r--r-- 1 root root 118 25 jun 19:05 /etc/localtime
看著 /var/log/yum.log 我看到了這個:
Jun 25 19:05:27 Updated: glibc-common-2.17-55.143.amzn1.x86_64 Jun 25 19:05:30 Updated: glibc-2.17-55.143.amzn1.x86_64 Jun 25 19:05:31 Updated: libtiff-4.0.3-20.20.amzn1.x86_64 Jun 25 19:05:31 Updated: glibc-headers-2.17-55.143.amzn1.x86_64 Jun 25 19:05:31 Updated: subversion-libs-1.8.11-1.50.amzn1.x86_64 Jun 25 19:05:32 Updated: subversion-1.8.11-1.50.amzn1.x86_64 Jun 25 19:05:32 Updated: glibc-devel-2.17-55.143.amzn1.x86_64 Jun 25 19:05:32 Updated: libtiff-devel-4.0.3-20.20.amzn1.x86_64 Jun 25 19:05:32 Updated: python26-jmespath-0.7.1-1.9.amzn1.noarch Jun 25 19:05:32 Updated: python27-jmespath-0.7.1-1.9.amzn1.noarch Jun 25 19:05:33 Updated: glibc-2.17-55.143.amzn1.i686
所以我懷疑其中一個會這樣做,我猜是 glibc 更新之一。
查看
ls -l /etc/localtime
以了解更改發生的時間。/var/log/audit/audit.log
然後查看日誌,例如/var/log/secure
在那個時候可能已經開始的事情。注意現在
systemd
已經接管了/etc/localtime
,還有一個命令timedatectl set-timezone <zone>
也可以更改此文件。此外,還有一個
systemd-timedated.service
提供dbus 服務來更改時區。您還可以查看 systemd 日誌:sudo journalctl -l|grep timedate
您可以通過執行找到通過安裝 rpm 執行的腳本
rpm -q --scripts glibc
例如對於 glibc。您可以通過在文件上安裝、啟動
audit
和配置監視來記錄文件中的更改sudo auditctl -w /etc/localtime -k mymarker
然後查看日誌
sudo ausearch -k mymarker
用 刪除所有規則
sudo auditctl -D
。您將獲得有關打開或更改文件的任何程序的資訊,但如果它來自一個沒有多大幫助的 shell 腳本,因為該命令將只是rm
orln
。也許如果您使用
timedatectl set-timezone
更改時區而不是自己連結它,它將以進一步更新將接受且不會更改的方式進行。