Linux教程

linux centOS7自动同步时间

本文主要是介绍linux centOS7自动同步时间,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原文:http://t.zoukankan.com/leekeggs-p-9347318.html

问题:西部数码的服务器过一段时间就会慢于正常的时间,导致一些接口请求超时,影响正常的业务。

本文仅记录一下解决办法,完全参照原文出处。

介绍两种同步linux系统的时间方法:
(1) 开启ntpd服务,即配置ntp服务器实现时间同步。
(2) 利用ntp客户端程序,即ntpdate同步时间。
注意:因为ntp服务器本来就会与上层时间服务器进行同步,所以在默认的情况下,ntp服务器不可以使用ntpdate,也就是说ntpdate和ntpd不能同时启用。

1. 开启ntpd服务同步时间

首先介绍两个可用的ntp服务器

中国ntp服务器:cn.pool.ntp.org
上海交通大学网络中心NTP服务器:ntp.sjtu.edu.cn

1.1 与ntp服务相关的配置文件和数据文件

(1) /etc/ntp.conf: ntp服务器的主要配置文件
(2) /usr/share/zoneinfo/: 由tzdata所提供,为各时区的时间格式对应文件。例如我国的时区格式对应文件是/usr/share/zoneinfo/Asia/Shanghai。这个目录下的文件与下面要介绍的两个文件clock和localtime是有关系的
(3) /etc/sysconfig/clock: 设置时区与是否使用UTC时钟的配置文件。每次开机后Linux会自动读取这个文件来设置自己系统默认所需要显示的时间。比如说,在我们中国的本地时间设置中,这个文件应该会有一行 ZONE="Asia/Shanghai" 的字样,这表示我们的时间配置文件要使用/usr/share/zoneinfo/Asia/Shanghai那个文件
(4) /etc/localtime: 就是本地端的时间配置文件,Linux会将/usr/share/zoneinfo/Asia/Shanghai这个文件内容复制到/etc/localtime中,未来我们的时间显示就以Shanghai这个配置文件为准。

1.2 ntp服务配置

(1) 首先编辑ntp.conf文件

[root@node1 ~]# vim /etc/ntp.conf 
# 处理权限问题
restrict 127.0.0.1      #这两个是默认值,放行本机来源
restrict -6 ::1

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap  # 放行局域网来源

# 设置主机来源,请将原来的[0|1|2|3].centos.pool.ntp.org设置注释掉
restrict cn.pool.ntp.org        # 放行cn.pool.ntp.org进入本ntp服务器
server cn.pool.ntp.org prefer   # 以这台主机为优先
server ntp.sjtu.edu.cn

(2) 启动ntp服务,并观察

# 启动ntpd服务
[root@node1 ~]# service ntpd start
# 配置开机自启
[root@node1 ~]# chkconfig ntpd on

# 查看同步状态,注意:需要一段时间,才能同步成功
[root@node1 ~]# ntpstat
synchronised to NTP server (85.199.214.100) at stratum 2 
   time correct to within 325 ms
   polling server every 128 s

[root@node1 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*85.199.214.100  .GPS.            1 u   35   64  377  310.011  -10.192   3.191

2. ntpdate同步时间

(1) 手动同步时间

[root@node1 ~]# ntpdate cn.pool.ntp.org
 3 Jun 18:06:16 ntpdate[2317]: adjust time server 202.112.29.82 offset -0.007719 sec

注意:如果会出现以下提示:no server suitable for synchronization found
加入-u参数,来同步时间

ntpdate -u cn.pool.ntp.org

时间同步完成后,执行命令hwclock -w,将当前系统时间写入BIOS。另外hwclock -r可读取BIOS中的时间
(2) 配置定时任务,同步时间

[root@node1 ~]# crontab -e
# 每过半个小时同步一次
0 */30 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w

(3) 配置开启启动校验
编辑/etc/rc.d/rc.local文件(vim /etc/rc.d/rc.local),在文件末尾添加如下内容

/usr/sbin/ntpdate -u cn.pool.ntp.org> /dev/null 2>&1; /sbin/hwclock -w

这篇关于linux centOS7自动同步时间的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!