Linux服务器运行久时,系统时间就会存在一定的误差,怎样使服务器的时间和网络服务器的时间同步。
网络时间服务器
首先得确保这些服务器都能ping通否则是无法时间同步的。
- 中国国家授时中心:210.72.145.44 ----暂时无法使用
- NTP服务器(上海) :ntp.api.bz
- 中国ntp服务器:cn.pool.ntp.org
- pool.ntp.org
ZONE="Asia/Shanghai"
UTC=false
ARC=false
/usr/sbin/ntpdate -u cn.pool.ntp.org
[root@localhost ~]# hwclock -r
hwclock -w
00 10 * * * root /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w
00 10 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w
时间同步工具
rdate:rdate -s
ntpdate:ntpdate -u(使用-u参数会返回误差,也可以使用-s)
同步时间
1.修改时区
cp -y /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vim /etc/sysconfig/clock
ZONE="Asia/Shanghai" UTC=false ARC=false
2.同步时间
/usr/sbin/ntpdate -u cn.pool.ntp.org
3.写入硬件时间
服务器每次重启都会参考硬件的时间,所以需要将当前系统的时间写入到硬件。
查看当前硬件时间:
hwclock -r
[root@localhost ~]# hwclock -r Thu 12 May 2016 08:05:43 PM CST -0.674165 seconds
写入硬件时间:
hwclock -w
自动时间同步
1.配置开机启动校验
vim /etc/rc.d/rc.local
/usr/sbin/ntpdate -u cn.pool.ntp.org> /dev/null 2>&1; /sbin/hwclock -w
2.配置定时任务
vim /etc/crontab
00 10 * * * root /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w
或者
crontab -e
00 10 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w