由于我们业务的发展,增加前端的web server的机器数,并且通过nginx进行了简单的负载均衡,但是,我们一些业务逻辑会依赖于机器的时间,所以,就需要同步这些web server机器的系统时间。幸亏freeBSD上提供了这样的时间同步服务,叫ntpd这样的服务。它的具体实现原理就是:有一台机器作为ntpd的服务器,这台时间服务器会定期与国外或者国内的标准时间服务器(这个可以在配置文件设定是那些服务器)校准时间,这样的话,自己系统中其他机器就以这台ntpd的服务器的时间为准,定期同步校准时间。进而就实现了机器间的时间一致性。

   具体搭建步骤是:(如果没有安装ntpd的话,可以利用ports方式进行安装)

   1、选定一台服务器作为自己系统的时间服务器,比如:192.168.1.100

   2、在这台时间服务器中,调整时区,比如UTC,

       cp /usr/share/zoneinfo/Etc/UTC  /etc/localtime

       adjkerntz -a

 3、校准这台服务器的时间 ntpdate 202.112.10.60

 4、创建配置文件ntp.conf,保存在/etc下面

 5、 配置文件的内容如下:     

     server time.buptnet.edu.cn iburst maxpoll 9

     server cn.pool.ntp.org iburst maxpoll 9

     server hk.pool.ntp.org iburst maxpoll 9

     server s2e.time.edu.cn iburst maxpoll 9

     restrict 192.168.1.100 mask 255.255.255.0 nomodify notrap  //安全配置,只有同一个网段才可以访问ntp服务器

     driftfile /var/db/ntp.drift

       具体什么含义,可以查找相关资料

  6、启动ntpd, /etc/rc.d/ntpd start

  7、查看NTP服务器状态 ntpq -p

 

   上述过程是搭建时间服务器

   下面需要设置其他服务器来保持与时间服务器进行同步校准时间

    主要是在crontab中添加定时的任务就可以了  

       */3     *       *       *       *       /usr/sbin/ntpdate 192.168.1.100 

     在需要同步时间的机器中添加上面的任务。

 

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐