DZ先生怪谈国标28181之利用crontab为linux服务器做时间同步
1. 自述
关于时间同步,必须一个作为服务端(server)端,一个作为Client端。关于server端,上章DZ先生已经教了WIN7做NTP服务器的方法:https://blog.****.net/dzxs_gb28181/article/details/86992060 今天DZ先生主要讲linux作为Client向服务端进行时间同步,此种方法主要面向中小型网络架构,大型网络也适用,此方法比较简单适用。
2. crontab编辑格式介绍
crontab内的基本编辑格式如下
* * * * * command
分 时 日 月 周 命令
周的数字为 0 或 7 时,都代表『星期天』的意思!另外, 还有一些辅助的字符,大概有底下这些:
几个基本命令(此操作主要针对root用户操作)
crontab -e //编辑某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
[[email protected] ~]# service crond status #查看crond状态 注:定制系统可能没有这条命令
crond (pid 2775) is running...
[[email protected] ~]# service crond stop #停止crond服务
Stopping crond: [ OK ]
[[email protected] ~]# service crond start #启动crond服务
Starting crond: [ OK ]
-------------------------------------------------------------------------------
或者用这种方式也可以
[[email protected] ~]# /etc/init.d/crond status
crond (pid 3639) is running...
[[email protected] ~]# /etc/init.d/crond stop
Stopping crond: [ OK ]
[[email protected] ~]# /etc/init.d/crond start
Starting crond: [ OK ]
[[email protected] ~]# /etc/init.d/crond status
crond (pid 3668) is running...
3. 实例
现有一台WIN7 NTP服务器192.168.1.203,linux服务器每隔一个小时向NTP服务器进行时间同步
1) crontab -e
0 * * * * /usr/sbin/ntpdate 192.168.1.203>>/var/log/ntpdate.log;/usr/sbin/hwclock -w
0 * * * * #代表每隔1个小时;如果是每天2点则改为 0 2 * * *
/usr/sbin/ntpdate 192.168.1.203>>/var/log/ntpdate.log;
#代表向192.168.1.203进行时间同步,并将日志存入/var/log/ntpdate.log,ntpdate.log 要自己在/var/log下创建
/usr/sbin/hwclock -w; #代表同步系统时间至硬件时间
; # 一次执行两个命令用;隔开,或者&&也行
注意事项:
1. 这边为什么用/usr/sbin/ntpdate和/usr/sbin/hwclock;为什么不直接用ntpdate和hwclock?
在crontab中,这边ntpdate和hwclock不能直接执行,需要找到详细的命令路径,可以用whereis命令查询如:
[[email protected] ~]# whereis ntpdate
ntpdate: /usr/sbin/ntpdate /usr/share/man/man8/ntpdate.8.gz
####某些系统做过开发没有whereis命令,可以试试/usr/local/bin/ntpdate
[[email protected] ~]# whereis hwclock
hwclock: /sbin/hwclock /usr/sbin/hwclock /usr/share/man/man8/hwclock.8.gz
[[email protected] ~]#
2)crontab -l 查看例行性工作有哪些
[[email protected] ~]# crontab -l
* * * * * /usr/sbin/ntpdate 192.168.1.203>>/var/log/ntpdate.log&&/usr/sbin/hwclock -w
[[email protected] ~]#
3)查看日志
[[email protected] ~]# tail -f /var/log/ntpdate.log
11 Feb 17:00:01 ntpdate[3155]: adjust time server 192.168.1.203 offset 0.010181 sec #每隔1小时同步的日志
11 Feb 18:00:01 ntpdate[3190]: adjust time server 192.168.1.203 offset 0.044966 sec #每隔1小时同步的日志
11 Feb 21:19:01 ntpdate[3460]: adjust time server 192.168.1.203 offset -0.016894 sec #每隔1分钟同步的日志
11 Feb 21:20:01 ntpdate[3466]: adjust time server 192.168.1.203 offset 0.009187 sec #每隔1分钟同步的日志
11 Feb 21:21:01 ntpdate[3472]: adjust time server 192.168.1.203 offset -0.004192 sec #每隔1分钟同步的日志
***关注DZ君,让监控变得更简单***