歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 為什麼在crontab中使用ntpdate同步時間無效?

為什麼在crontab中使用ntpdate同步時間無效?

日期:2017/2/28 15:44:18   编辑:Linux教程

在一台 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 中的命令盡量使用完整路徑,避免執行時找不到。

Copyright © Linux教程網 All Rights Reserved