最近我在我自己的服务器上搭建cacti监控时,发现监控主机找不到被监控机,出现“time out”的错误提示。想了许多办法,查了许多文档,最后发现主机与监控机的时间不一致,导致snmp连接监控机出错。

然后我就考虑使用cron任务计划自动更新时间。

当然,在此之前,需要先安装ntpdate这个工具。

yum install -y ntpdate              //yum安装这个包

crontab -e

*/20 * * * *  ntpdate ntp.fudan.edu.cn   //每20分钟,与复旦大学的时间服务器同步一次时间

保存并退出

之后,我使用date -s 05:00:00          //手动更改时间为5点

看看同步时间是否生效。

过了20分钟,我在执行date命令时,我发现时间05:22:03 ,没有按照我想象的那样自动的去同步时间。

我猜想,可能是cron任务计划没有执行,查看/var/log/cron的日志文件,发现命令已经被执行,但是没有同步时间。所以我排除了crond没有执行的可能。

接下来,可能是命令输入错误,所以我把ntpdate ntp.fudan.edu.cn 命令放到bash下面执行,发现命令正常,可以正常同步时间。

这个时候,我有点凌乱了,到底是哪里的问题。为甚么执行不成功。后来,想到一种可能,任务计划可能不识别这个命令,因为这个命令是我们后来安装的,不是系统自带的,所以我在命令前添加了绝对路径,/usr/sbin/ntpdate ntp.fudan.edu.cn。发现测试成功。可以自动同步时间。