2016-03-07 126 views
1

我有几个NTP服务器,我使用多种平台(Ubuntu,RHEL等)。我有很多机器指向这些服务器,并且按预期同步时间。我需要在NTP服务器上创建一个自定义时区,以便我能够操作此时区的DST设置?即需要有能力根据需要在任何特定日期执行Spring/Fall DST。如何使用NTP服务器使用自定义DST设置创建自定义时区?

这甚至可能吗?

+0

NTP分配UTC(也称为GMT),不应用任何时区。通常,时区应用于每台机器上(实际上,每台机器上的每个进程中)都希望显示当地时间。通常情况下,如果你想要一堆机器具有相同的时区,你可以确保它们都配置相同(例如,所有的都有相同的'/ etc/localtime'文件)。 –

+1

如果您想创建自己的时区,根据自己的自定义时间表(不是任何标准时间表)来创建自己的时区,可以创建自己的“zoneinfo”文件,并使用“zic”程序。 (然后你可以将新文件安装为'/ etc/localtime',或者将其安装在'/ usr/share/zoneinfo'下,并且'/ etc/localtime'是一个指向它的符号链接。) –

+0

If if如果你解释了*为什么*你想创建一个自定义时区(针对特定区域,哪一个?或者由于某些自定义业务规则或其他原因)?但显然这是一个[XY问题](http: //meta.stackexchange.com/questions/66377/what-is-the-xy-problem),因为TZ和NTP没有关系。这也是堆栈溢出的主题。 –

回答

1

有趣的问题 - NTP没有时区[1]的概念,也没有DST [2],也就是底层操作系统/子系统。

NTP仅提供UTC时间为&的日期。

不知道你的用例是什么 - 但你需要在操作系统级别上做你想做的事情,或者只是将所有的事情同步到你自己的UTC版本。 (因为你可能有一个封闭的时间域,服务于1台服务器的时间,并随着你的想要减慢速度或加快速度等来操纵它。)

+1

如果您只想加快速度或减慢速度一秒钟或两秒钟,则维持“已关闭”的NTP时间域可以工作。如果您尝试将主NTP时间服务器向前或向后跳一小时,这将会造成巨大的破坏性,并且所有其他机器需要一段时间(通常需要20-40分钟到几个小时)才能同步,所以对于协调的DST转换没有用处。 –

+0

是的,这是非常真实的 - 我可以在很长一段时间内放慢速度,但是如果任何系统连接到“真实世界”,我会觉得很乱,我从不主张在任何时间域向后跳跃 - 它打破了太多的东西! – user3788685

0

同意这里的每个答案。 NTP服务器本身没有时区概念。如上所述,我能够从他们的FTP回购中获得最新的tzdata。手动编辑VI中的'northamerica'文件以更改DST规则。使用zic保存并编译。这link也是非常有用的。