Linux下如何实现与Internet时间同步
2024年06月28日
31
关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚。为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算。整个地球分为二十四时区,每个时区都有自己的本地时间。那么如何在Linux系统下实现与Internet时间同步
一、安装ntp
[root@server-2 ~]# yum install -y ntpdate
二、同步时间
// 方式一、使用域名连接,要经过DNS解析,速度慢。
[root@server-2 ~]# ntpdate pool.ntp.org
// 方式二、使用IP连接,超级快。
[root@server-2 ~]# ntpdate 120.24.81.91

http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们国家的NTP Server cn.pool.ntp.org.它有3个服务器地址:
服务器一: 1.cn.pool.ntp.org
服务器二: 2.asia.pool.ntp.org
服务器三: 3.asia.pool.ntp.org
(直接用域名有时有问题,可以先Ping出他们的IP,然后用IP地址同步)

// 出现以下信息说明成功

Feb 21:23:06 ntpdate[62910]: step time server 182.92.12.11 offset -40.589470 sec
三、将系统时间写入到系统硬件当中,避免重启服务器时间覆盖

// 显示hardwareclock系统硬件时间

[root@server-2 ~]# hwclock

// 将系统时间写入到系统硬件当中

[root@server-2 ~]# hwclock -w
四、设定计划任务同步网络时间

crontab格式如下:

# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
设定crontab计划任务有两种方式:
1、写在/etc/crontab里

代码:

11 * * * root ntpdate 210.72.145.44

每天11点与中国国家授时中心同步时间
每天11点与中国国家授时中心同步时间
当然前提是

apt-get install ntpdate

代码也可是

11 * * * root ntpdate us.pool.ntp.org
2、使用命令crontab -e
crontab -e
    10 5 * * * root ntpdate us.pool.ntp.org;hwclock -w

这样每天5:10自动进行网络校时,并同时更新BIOS的时间