如何使用ntp强制时钟更新?

分享于 

6分钟阅读

ubuntu

  繁體

问题

我使用NTP服务将时间更新到当前时间。

我在/etc/rc.local文件中添加了以下行:


sudo ntpdate -s time.nist.gov



然而在启动后,它仍然需要几分钟才能更新时间,在此期间,我无法有效地使用tarmake

如何强制更新时钟?

以下在命令行中工作正常,但在放入/etc/rc.local时无法更新时钟:


$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date


Thu Jan 1 00:00:58 UTC 1970


 * Stopping NTP server ntpd [ OK ] 


 * Starting NTP server [ OK ] 


Thu Feb 14 18:52:21 UTC 2013




答案1

可能ntp服务正在运行,导致ntpdate无法打开套接字(端口123 UDP ),并连接到ntp服务器。

从命令行尝试:


sudo service ntp stop


sudo ntpdate -s time.nist.gov


sudo service ntp start



如果要将此内容放入/etc/rc.local,请使用以下命令:


( /etc/init.d/ntp stop


until ping -nq -c3 8.8.8.8; do


 echo"Waiting for network..."


done


ntpdate -s time.nist.gov


/etc/init.d/ntp start )&




答案2

不推荐使用ntpdate (已弃用),请使用


sudo service ntp stop


sudo ntpd -gq


sudo service ntp start



-gq告诉ntp守护进程更正时间,而不考虑偏移量(g ),并在设置时间后立即退出(q )。


答案3

使用sntp立即设置时间。


sudo sntp -s 24.56.178.140



-s后面的数字可以是ntp时间服务器。


答案4

可以通过以下两种方法之一配置紧急阈值:

  • 编辑/etc/default/ntp,并确保-g选项存在
  • 编辑/etc/ntp.conf并将tinker panic 0放在顶部

安装假的hwclock程序:


# apt-get install fake-hwclock



fake-hwclock: Save/restore system clock on machines without working RTC hardware



 Some machines don't have a working realtime clock (RTC) unit, or no


 driver for the hardware that does exist. fake-hwclock is a simple set


 of scripts to save the kernel's current clock periodically (including


 at shutdown) and restore it at boot so that the system clock keeps at


 least close to realtime. This will stop some of the problems that may


 be caused by a system believing it has travelled in time back to


 1970, such as needing to perform filesystem checks at every boot.



 On top of this, use of NTP is still recommended to deal with the fake


 clock"drifting" while the hardware is halted or rebooting.




答案5

ntpdate是一个不同于net dameon的程序,NTPDate可能在引导时出错,因为ntpd正在该套接字上运行。

从命令行,运行


# sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start



您也可以卸载ntpd(apt-get remove ntp),并添加cron脚本,每小时使用一次ntpdate。

ntp服务在此系统上没有意义,因此请先删除。


# sudo apt-get remove ntp



现在添加命令:


ntpdate -sb time.nist.gov



/etc/rclocal

重启。


答案6


rdate -s tick.greyware.com




答案7

在Debian /Mint /Ubuntu (或其它Debian衍生产品)系统上,执行此操作的正确方法是使用

 
NTPD_OPTS="-g"



在文件中

 
/etc/default/ntp



这可以确保从/etc/init.d/ntp脚本启动ntpd时,它使用"-g"选项运行,即


 start-stop-daemon --start --quiet --oknodo --pidfile /var/run/ntpd.pid --startas /usr/sbin/ntpd -- -p /var/run/ntpd.pid -g -u 124:128




答案8

tlsdate通过安全地将TLS连接到远程服务器,并提取安全握手的远程超时来设置本地时钟。


$ tlsdate -V -n -H encrypted.google.com




答案9

https://help.ubuntu.com/lts/serverguide/NTP.html#timedatectl

使用timedatectl设置时间,不推荐使用ntp。



for  时钟  cloc  NTP  
相关文章