每10分钟与服务器同步
crontab -e 0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
加入定时计划任务,每隔10分钟同步一下时钟。
发现crontab是有自己的环境变量的 path=/usr/bin/;/bin/
但是用命令 whereis ntpdate 发现他在 /usr/sbin 下,所以就有找不到这个命令的可能。然后不全命令的全路径,问题解决。
ntpdate有个致命的问题是他的时间同步存在时间的跳跃,比如现在是12点整,同步完后是1点整,这样对一些依赖时间的操作就会出现问题,比如sleep,wait等。所以很多人推荐只在机器重启后一次性的执行ntpdate,之后用ntpd来同步。
在crontab中添加了 时间同步任务
10 */1 * * * ntpdate -u 10.11.0.35;hwclock -w
但是时间还是一直不正确
开始检查
less /var/log/cron May 25 12:25:01 localhost CROND[29708]: (root) CMD (ntpdate -u 10.11.0.35;hwclock -w)
命令确实按时执行了
再来看下执行结果
# less /var/spool/mail/root /bin/sh: ntpdate: command not found /bin/sh: hwclock: command not found
问题出在这里 ,在/bin/sh 下 找不到 这两个命令
解决:看看这两个命令在哪里
# which ntpdate /usr/sbin/ntpdate # which hwclock /usr/sbin/hwclock
重新更改crontab定时任务
#crontab -e 25 */1 * * * /usr/sbin/ntpdate -u 10.11.0.35;/usr/sbin/hwclock -w
#service crond restart
完成