Debian

如何強制debian使用UTC

  • June 5, 2018

使用 debootstrap 手動安裝後,我的伺服器始終使用本地時間。我已經嘗試將時區設置為 UTC,但沒有奏效。時區是使用以下命令設置的:

cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime

我想強制伺服器始終使用 UTC 作為時區。

日期

Mo 4. Jun 13:08:51 CEST 2018

日期-u

Mo 4. Jun 11:09:07 UTC 2018

ls -al /etc/localtime

lrwxrwxrwx 1 root root 23 Jun  4 13:09 /etc/localtime -> /usr/share/zoneinfo/UTC

貓 /etc/時區

Etc/UTC

時間日期ctl

Local time: Di 2018-06-05 14:52:12 CEST
Universal time: Di 2018-06-05 12:52:12 UTC
RTC time: Di 2018-06-05 12:52:12
Time zone: Etc/UTC (CEST, +0200)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

我已經嘗試通過以下命令配置時區,但沒有效果:

dpkg-reconfigure tzdata
cp /usr/share/zoneinfo/UTC /etc/localtime
ln -s /etc/localtime /usr/share/zoneinfo/UTC
ln -s /etc/localtime /usr/share/zoneinfo/Etc/UTC

我看不到任何警告或錯誤消息。

你知道錯誤時區的原因是什麼嗎?

問題可能是這個連結:

lrwxrwxrwx 1 root root 23 Jun  4 13:09 /etc/localtime -> /usr/share/zoneinfo/UTC

如果此連結在cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime命令之前存在,則實際發生的情況是/usr/share/zoneinfo/UTC文件被 file 的內容覆蓋/usr/share/zoneinfo/Europe/Berlin

這將導致實際使用文件內容的任何內容都使用 CET/CEST 時區,但是通過檢查連結文件的名稱/etc/localtime來查找時區的任何內容都會將時區報告為“UTC”。

要解決這個問題:

apt-get --reinstall install tzdata
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
update-initramfs -u

注意最後一個命令:更改系統預設時區後,您應該更新您的 initramfs,以確保在系統引導序列早期啟動的程序也將使用正確的時區定義。

引用自:https://unix.stackexchange.com/questions/447983