Linux自动同步时间的方法

时间:2022-03-19 15:45:26

介绍两种同步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