博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux上ntpd ntpdate时间同步
阅读量:2456 次
发布时间:2019-05-10

本文共 3394 字,大约阅读时间需要 11 分钟。

通常情况下linux服务执行

ntpdate 210.72.145.44

就可以进行时间同步,但突然发现服务器上的时间竟然不准确了,执行ntpdate 210.72.145.44命令提示如下信息:

[root@HXlinux ~]# ntpdate  210.72.145.4425 Mar 23:03:44 ntpdate[2434]: no server suitable for synchronization found

210.72.145.44是中国国家授时中心的官方服务器,不应该出问题的。

停到iptables还是不能进行同步。
man ntpdate看到如下的参数说明:

-u      Direct  ntpdate  to  use  an  unprivileged port for outgoing packets. This is most useful when behind a firewall that blocks incoming traffic to privileged ports, and  you  want  to  synchronize  with  hosts beyond the firewall. Note that the -d option always uses unprivileged ports.

执行

[root@HXlinux ~]# ntpdate -u 210.72.145.4428 Mar 09:27:09 ntpdate[2562]: no server suitable for synchronization found

不确定路由器上是否关闭了udp的123端口就加上-u参数吧。

失效,估计这地址失效,换时间服务器地址:

[root@localCoohx ~]# ntpdate ntp.api.bz 7 May 16:59:02 ntpdate[2199]: adjust time server 61.153.197.226 offset 0.001975 sec[root@HXlinux ~]# date2016年 03月 28日 星期一 09:29:56 CST

同步成功,

附加一下网络上查询到的其他的时钟服务器

(美国)
time.nist.gov
(复旦)(国内用户推荐)
ntp.fudan.edu.cn
微软公司授时主机(美国)
time.windows.com
台警大授时中心(台湾)
asia.pool.ntp.org
网通授时中心(北京)
219.158.14.130
time.twc.weather.com
swisstime.ethz.ch
ntp0.fau.de
ntp3.fau.de
time-a.nist.gov
time-b.nist.gov
time-nw.nist.gov
nist1-sj.glassey.com
NTP服务器(上海)
ntp.api.bz

修改linux的时间可以使用date指令

  date命令的功能是显示和设置系统日期和时间。
  输入date 查看目前系统时间。
  修改时间需要 date -功能字符 修改内容
命令中各选项的含义分别为:
  -d datestr, –date datestr 显示由datestr描述的日期
  -s datestr, –set datestr 设置datestr 描述的日期
  -u, –universal 显示或设置通用时间
  时间域
  %H 小时(00..23)
  %I 小时(01..12)
  %k 小时(0..23)
  %l 小时(1..12)
  %M 分(00..59)
  %p 显示出AM或PM
  %r 时间(hh:mm:ss AM或PM),12小时
  %s 从1970年1月1日00:00:00到目前经历的秒数
  %S 秒(00..59)
  %T 时间(24小时制)(hh:mm:ss)
  %X 显示时间的格式(%H:%M:%S)
  %Z 时区 日期域
  %a 星期几的简称( Sun..Sat)
  %A 星期几的全称( Sunday..Saturday)
  %b 月的简称(Jan..Dec)
  %B 月的全称(January..December)
  %c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
  %d 一个月的第几天(01..31)
  %D 日期(mm/dd/yy)
  %h 和%b选项相同
  %j 一年的第几天(001..366)
  %m 月(01..12)
  %w 一个星期的第几天(0代表星期天)
  %W 一年的第几个星期(00..53,星期一为第一天)
  %x 显示日期的格式(mm/dd/yy)
  %y 年的最后两个数字( 1999则是99)
  %Y 年(例如:1970,1996等)
  需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。
  例1:用指定的格式显示时间。
  

[root@HXlinux ~]# date '+This date now is =>%x ,time is now =>%X ,thank you !'This date now is =>2016年03月28日 ,time is now =>09时31分49秒 ,thank you !

  例2:用预定的格式显示当前的时间。

  

# date  Fri Nov 26 15:20:18 CST 1999

  例3:设置时间为下午14点36分。

  

# date -s 14:36:00  Fri Nov 26 14:15:00 CST 1999

  例4:设置时间为1999年11月28号。

  

# date -s 991128  Sun Nov 28 00:00:00 CST 1999

  实例:设置时间伟2008年8月8号12:00

  

# date -s "2008-08-08 12:00:00"

  修改完后,记得输入:clock -w

  把系统时间写入CMOS
ntpd、ntpdate的区别
使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:
第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。
第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。
第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。
因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。
NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

转载地址:http://hvnhb.baihongyu.com/

你可能感兴趣的文章
console java_Java Console reader()方法与示例
查看>>
java enummap_Java EnumMap remove()方法与示例
查看>>
hashmap示例_Java HashMap putAll()方法与示例
查看>>
c语言中typedef_C语言中typedef的示例
查看>>
stl vector 函数_vector :: end()函数,以及C ++ STL中的示例
查看>>
Java Collections fill()方法与示例
查看>>
Java Vector removeAll()方法与示例
查看>>
c++ 向量复制_在C ++中复制向量的不同方法
查看>>
kotlin 取整数_Kotlin程序连接两个整数数组
查看>>
kotlin 查找id_Kotlin程序来查找数字的总和
查看>>
测试类型及其测试场景_软件测试及其基本类型
查看>>
NCERT的完整形式是什么?
查看>>
scala中对象私有数据_案例对象和Scala中的对象之间的区别
查看>>
printstream_Java PrintStream flush()方法与示例
查看>>
C ++ | 用setter和getter方法创建一个类
查看>>
jquery悬停_jQuery悬停()
查看>>
sql外键_SQL外键
查看>>
jqueryui时间插件_jQueryUI AutoComplete插件
查看>>
如何在Ubuntu 18.04上安装7Zip
查看>>
linux xargs命令_Linux xargs命令示例
查看>>