zoukankan      html  css  js  c++  java
  • linux 时间同步的2种方法

    推荐第一种 !

    转载自: http://blog.51yip.com/server/1474.html

    由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的时候,无法下单,游戏无法登录等。自己用的PC就无所谓了,手动改一下就行了。

    一,用ntpdate从时间服务器更新时间

    如果你的linux系统根本没有ntpdate这个命令, 可先安装 :

    yum install ntp  

    安装完了之后,你不要做什么配置,也不需要,直接测试一下

    vi /etc/ntp.conf

    add below:

    server 1.cn.pool.ntp.org
    server 3.asia.pool.ntp.org
    server 2.asia.pool.ntp.org

    restart service and sync the time

    [root@localhost ~]# ntpdate time.nist.gov  
    22 Oct 21:11:43 ntpdate[5014]: adjust time server 207.200.81.113 offset -0.018788 sec 

    如果出去上面的内容说明,同步成功了。然后在crontab里面加上以下内容。

    */10 * * * * ntpdate time.nist.gov   #域名或IP  

    每隔十分钟同步一次。推荐几个时间服务器。

    time.nist.gov
    time.nuri.net
    0.asia.pool.ntp.org
    1.asia.pool.ntp.org
    2.asia.pool.ntp.org
    3.asia.pool.ntp.org

    如果出现the NTP socket is in use, exiting问题

    机房中的ESX4的服务器时间不对,ESX Server的时间准确比较重要,因为其上的VM(虚拟主机)的时间与其同步。在ESX4上使用NTP服务器同步时间,却遇到了“the NTP socket is in use, exiting”的问题,操作过程命令如下:

    [root@localhost ~]# ntpdate time.nist.gov 
    21 Sep 14:39:09 ntpdate[24744]: the NTP socket is in use, exiting
    [root@localhost ~]# service ntpd stop
    Shutting down ntpd: [  OK  ]
    [root@localhost ~]# ntpdate time.nist.gov
    22 Oct 21:11:43 ntpdate[5014]: adjust time server 207.200.81.113 offset -0.018788 sec

    二,用ntp搭建自己的时间服务器

    上面我们是利用别人的时间服务器来同步时间,这些时间服务器都是比较权威的。当我们自己搭建时间服务器就不用crontab来定时去跑。

    1,安装时间服务器ntp

    yum install ntp  

    2,配置ntp

    [root@localhost ~]# cat /etc/ntp.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  
    restrict default ignore   //默认不允许修改或者查询ntp,并且不接收特殊封包  
    restrict 127.0.0.1        //给于本机所有权限  
    restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify  //给于局域网机的机器有同步时间的权限  
    server time.nist.gov prefer      //设置时间服务器,加prefer表示优先  
    server 0.asia.pool.ntp.org  
    server 1.asia.pool.ntp.org  
    server 2.asia.pool.ntp.org  
    server  127.127.1.0     # local clock  
    fudge   127.127.1.0 stratum 10  
    driftfile /var/lib/ntp/drift  
    keys /etc/ntp/keys  

    3,启动 ntp

    [root@localhost ~]# /etc/init.d/ntpd start 

    4,查看并测试

    [root@localhost ~]# netstat -upnl |grep ntpd   //查看时程  
      
    [root@localhost ~]# ntpq -pn    //查看同步的服务器IP  
     remote           refid      st t when poll reach   delay   offset  jitter  
    ==============================================================================  
     50.77.217.185   .INIT.          16 u    -   64    0    0.000    0.000   0.000  
     202.90.158.4    .INIT.          16 u    -   64    0    0.000    0.000   0.000  
     202.71.100.89   .INIT.          16 u    -   64    0    0.000    0.000   0.000  
     202.134.1.10    .INIT.          16 u    -   64    0    0.000    0.000   0.000  
    *127.127.1.0     .LOCL.          10 l   18   64  377    0.000    0.000   0.001  
      
    [root@localhost ~]# ntpstat   //同步的结果  
    synchronised to local net at stratum 11  
     time correct to within 12 ms  
     polling server every 512 s  

    remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“*”则表示也有连上线,不过是作为次要联机的NTP主机。
    refid:参考的上一层NTP主机的地址
    st:即stratum阶层
    when:几秒前曾做过时间同步更新的操作
    poll:下次更新在几秒之后
    reach:已经向上层NTP服务器要求更新的次数
    delay:网络传输过程钟延迟的时间
    offset:时间补偿的结果
    jitter:Linux系统时间与BIOS硬件时间的差异时间

    推荐第一种方法,虽然搭建个时间服务器,还是比较简单的,但是我觉得没有这个必要。如果用别人的时间服务器,每隔10分钟同步一次,可以精确到毫秒。

  • 相关阅读:
    C++三大特性之多态
    内向者沟通圣经:4P法(Preparation,Presence,Push,Practice)
    RTP/RTCP、TCP、UDP、RTMP、RTSP
    网络七层协议
    预防U盘被病毒侵害的方法
    Win8安装程序出现2502、2503错误解决方法
    小L的区间求和
    【剑指offer-12】矩阵中的路径
    【剑指offer】数值的整数次方
    【剑指offer】二进制中1的个数
  • 原文地址:https://www.cnblogs.com/ncy1/p/9465772.html
Copyright © 2011-2022 走看看