有没有办法根据另一台服务器的日期来设置一台服务器上的日期?

有没有办法根据另一台服务器的日期来设置一台服务器上的日期?

有人要求我更新 4 台未连接到互联网且没有 ntp 服务器的服务器上的时间。

例如

/etc/hosts 

146.92.25.3     jollibee  
146.92.25.4     mcdonalds  
146.92.25.5     burgerking  
146.92.25.6     chowking 

对我来说最简单的事情就是跑步

date -s "25 Jul 2012 14:40:00"

针对 4 台服务器中的每一台。

我知道他们以后会希望我再次这样做,而且我发现手动设置时间很麻烦。我想要做的是设置一个框上的时间,然后设置这个框上其他框上的时间。

例如,如果我将 Jollibee 的时间设置为正确的日期,那么我将运行

[root@mcdonalds /]# date -s `ssh jollibee 'date +"%d %b %Y %T"'`

其他服务器也是如此

我得到的是:

date: too many non-option arguments: 2012 ...
Try `date --help' for more information.

谁能告诉我我在这里做错了什么?

答案1

最好的解决方案是在所有四台服务器上设置 NTP 服务器,并将彼此配置为上游(但不在 Internet 上配置上游)。您可能希望为其中一台服务器赋予更高的层级,以便其他所有服务器都倾向于与该服务器同步。

另一个选择是设置日期. 配置其中一个服务器运行时间协议服务器(通常使用 inetd 完成),并在其他服务器上设置一个 cronjob 来运行rdate定期与时间服务器对接。

答案2

我不确定这是否是设置服务器日期/时间的好方法,但您需要通过将 ssh 命令括在引号中来修改命令,例如:

date -s "`ssh jollibee 'date +"%d %b %Y %T"'`"

相关内容