NTP - Ubuntu 20.04 中埃及 DST 时间更改 2023

NTP - Ubuntu 20.04 中埃及 DST 时间更改 2023

我有操作系统为 Ubuntu 20.04 的 ntp 服务器

2023 年 4 月 27 日,埃及将实行新的夏令时

我尝试使用“timedatectl”命令检查 dst 状态,但不幸的是它没有在命令输出中显示 dst 配置状态。

我已将时区配置为“africa/cairo”此外,在 ntp.conf 文件中,我将参考链接配置为“http://africa.pool.ntp.org/join.html”服务器 0.africa.pool.ntp.org 服务器 1.africa.pool.ntp.org 服务器 2.africa.pool.ntp.org 服务器 3.africa.pool.ntp.org

我需要以下方面的支持:

  • 如何在 ubuntu 中检查 DST 状态,因为它未显示在“datetimectl”命令输出中。
  • ubuntu 20.04 中是否已更新,以在 4 月 27 日自动更改开罗时区的时间。
  • NTP ubuntu 服务器是否会自动更改时间或者我必须执行手动操作。

谢谢

答案1

首先,NTP 与时区无关。NTP 上的所有时间计算均在世界标准时间。因此,选择来自非洲的池不会改变任何东西,除了您的系统使用的 NTP 服务器。所有 NTP 服务器都返回“通用时间”,而不是任何类型的“本地时间”。

除非没有其他方法可以自动同步时钟,否则您永远都不应该手动更新系统时钟。除此之外,由于夏令时或时区变化而手动更改时钟是绝对错误的!

时区数据库会定期更新,只要您保持系统处于受支持的版本并通过命令apt(或自动)更新,Ubuntu 就会自行更新。

通过在我完全更新的(22.10)系统上使用以下命令:

$ timedatectl list-timezones | grep -i -e egypt -e cairo
Africa/Cairo
Egypt

$ zdump -v Egypt
Egypt  -9223372036854775808 = NULL
Egypt  -9223372036854689408 = NULL
Egypt  Sun Sep 30 21:54:50 1900 UT = Sun Sep 30 23:59:59 1900 LMT isdst=0 gmtoff=7509
[...]
Egypt  Thu Jul 31 21:59:59 2014 UT = Thu Jul 31 23:59:59 2014 EET isdst=0 gmtoff=7200
Egypt  Thu Jul 31 22:00:00 2014 UT = Fri Aug  1 01:00:00 2014 EEST isdst=1 gmtoff=10800
Egypt  Thu Sep 25 20:59:59 2014 UT = Thu Sep 25 23:59:59 2014 EEST isdst=1 gmtoff=10800
Egypt  Thu Sep 25 21:00:00 2014 UT = Thu Sep 25 23:00:00 2014 EET isdst=0 gmtoff=7200
Egypt  9223372036854689407 = NULL
Egypt  9223372036854775807 = NULL

$ diff <(zdump -v Africa/Cairo | cut -d' ' -f2- ) <(zdump -v Egypt | cut -d' ' -f2- )

我注意到埃及(或非洲/开罗)时区的最后一次 DST 变化发生在 2014 年,并且我的系统上当前版本的时区信息数据库中没有针对埃及设置的 DST 变化。

最后一条命令显示Africa/CairoEgypt实际上是相同的时区。

作为替代方案,我写了 Perl 脚本这将检查过去和未来几年的 DST 日期。您也可以在系统上使用该脚本测试当前或选定的时区,以确保万无一失:

$ TZ=Egypt ./dstcheck.pl
 Testing seconds from 733276801 to 2200000000...
1993/03/28 Sun 02:00:01 [1993/03/28 Sun 00:00:01 UTC] +2 - Seconds: 733276801
1993/05/01 Sat 02:00:01 [1993/04/30 Fri 23:00:01 UTC] +3 - Seconds: 736210801
1993/10/01 Fri 02:00:01 [1993/10/01 Fri 00:00:01 UTC] +2 - Seconds: 749433601
[...]
2014/06/26 Thu 23:00:01 [2014/06/26 Thu 21:00:01 UTC] +2 - Seconds: 1403816401
2014/08/01 Fri 01:00:01 [2014/07/31 Thu 22:00:01 UTC] +3 - Seconds: 1406844001
2014/09/25 Thu 23:00:01 [2014/09/25 Thu 21:00:01 UTC] +2 - Seconds: 1411678801

如果你不幸生活在一个政府做出“愚蠢”决定的国家(对不起,我用这个词!)如此短的时间内改变夏令时,您可以尝试自己更新时区文件(这不是一件容易的事)或者等待并希望它们能在 4 月 27 日之前更新。


注意:如需了解当前时区信息,请访问IANA 时区数据库页面。似乎最近的埃及夏令时变化已纳入最新版本2023年(发布于 2023-03-28),所以你可能希望 Ubuntu 也能得到更新很快”


更新(2023-04-13)

截至今天,更新版本 (2023c) 似乎软件包 tzdata可用;您可以apt upgradeapt dist-upgrade您的系统并重试我上面提到的测试:

$ zdump -v Egypt | grep 2023
Egypt  Thu Apr 27 21:59:59 2023 UT = Thu Apr 27 23:59:59 2023 EET isdst=0 gmtoff=7200
Egypt  Thu Apr 27 22:00:00 2023 UT = Fri Apr 28 01:00:00 2023 EEST isdst=1 gmtoff=10800
Egypt  Thu Oct 26 20:59:59 2023 UT = Thu Oct 26 23:59:59 2023 EEST isdst=1 gmtoff=10800
Egypt  Thu Oct 26 21:00:00 2023 UT = Thu Oct 26 23:00:00 2023 EET isdst=0 gmtoff=7200

$ TZ=Egypt dstcheck.pl | grep 2023/
2023/04/28 Fri 01:00:01 [2023/04/27 Thu 22:00:01 UTC] +3 - Seconds: 1682632801
2023/10/26 Thu 23:00:01 [2023/10/26 Thu 21:00:01 UTC] +2 - Seconds: 1698354001

如果这个包看起来“被阻止”目前,您可以等待几天,或者直接执行apt install tzdata

答案2

对于无法升级 tzdata 的用户,有一个简单的方法可以通过更新 IANA DB 来更新这些数据

wget https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz
tar xvzf tzdata2023c.tar.gz
sudo zic africa
sudo zic antarctica
sudo zic asia
sudo zic australasia
sudo zic europe
sudo zic northamerica
sudo zic southamerica

答案3

首先,让我澄清一下你所说的内容(如果你的国家做出了“愚蠢”的决定(对不起,用这个词!),在如此短的时间内决定更改夏令时,无论出于何种原因,对于任何国家来说,这都是不可接受的,这是不礼貌的。我认为他提出了问题,而你想回答,你可以从技术角度回答他的问题。

在他的问题中,他只是提到时钟将于 4 月 27 日更改,但这个决定很久以前就宣布了

相关内容