感谢支持
我们一直在努力

为什么在crontab中使用ntpdate同步时间无效?

在一台 VirtualBox 上安装的 CentOS 5.8 系统上,时间不准确,一天能差上好几个小时,每次测试与时间相关的程序时,总得先去调整时间。于是在crontab中设置了一个定时任务:(crontab -e)


# 时间同步
0,10,20,30,40,50 * * * * ntpdate time.windows.com


过了一阵,发现时间并没有同步,而单独执行命令就可以。让命令执行结果输出到文件中试试:


# 时间同步
0,10,20,30,40,50 * * * * ntpdate time.windows.com &>/var/log/ntpdate.log


又过了一阵,发现时间还是不准确。看了一下 /var/log/ntpdate.log,如下:


/bin/sh: ntpdate: command not found


在shell中直接执行,就不会有找不到命令的问题,使用全路径来执行命令应该就可以了。先找到 ntpdate 的确切路径:


[root@node18 ~]# whereis ntpdate
ntpdate: /sbin/ntpdate /usr/sbin/ntpdate /usr/share/man/man8/ntpdate.8.gz


用 crontab -e 修改任务:


# 时间同步
#0,10,20,30,40,50 * * * * ntpdate time.windows.com &>/var/log/ntpdate.log
0,10,20,30,40,50 * * * * /sbin/ntpdate time.windows.com &>/var/log/ntpdate.log


保存


crontab: installing new crontab
[root@node18 ~]#
[root@node18 ~]#
[root@node18 ~]# date
2012年 07月 29日 星期日 02:48:13 CST
[root@node18 ~]# date
2012年 07月 29日 星期日 02:48:49 CST
[root@node18 ~]# date
2012年 07月 29日 星期日 02:49:46 CST
[root@node18 ~]# date
2012年 07月 30日 星期一 09:27:37 CST


时间同步了。
[root@node18 ~]# cat /var/log/ntpdate.log
30 Jul 09:26:33 ntpdate[6928]: step time server 65.55.21.19 offset 110191.229893 sec


总结两点:


(1)在 crontab 中设置了任务,要进行确认;


(2)crontab 中的命令尽量使用完整路径,避免执行时找不到。

赞(0) 打赏
转载请注明出处:服务器评测 » 为什么在crontab中使用ntpdate同步时间无效?
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏