目前 Linux 系統上面有兩個時間喔,一個是 Linux 系統,另一個則是 BIOS 時間(真正的硬件記錄的時間)! 我們可以使用 date 這個指令來手動修正目前主機的時間,不過, date 這個指令僅修正 Linux 時間而已,我們還需要以 hwclock 這個指令來將 BIOS 時間也更新才行! hwclock [-rw]
-r:查看現有BIOS時間
-w:將現在的linux系統時間寫入BIOS中 當我們進行完 Linux 時間的校時後,還需要以 hwclock -w 來更新 BIOS 的時間,因為每次開機的時候,系統會重新由 BIOS 將時間讀出來,所以, BIOS 才是重要的時間依據。 1. 開機的時候自動網絡校時:
vi /etc/rc.d/rc.local
/usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4; /sbin/hwclock -w 2. 設定計劃任務
crontab -e
10 5 * * * root ntpdate 192.168.0.2 ;hwclock -w
這樣每天5:10自動進行網絡校時
ntpdate命令: 通過輪詢指定的確定正確時間的 NTP 服務器, ntpdate 命令設置本地日期和時間。它從指定的每個服務器獲得了一些樣本,並應用標准 NTP 時鐘過濾器和選擇算法來選擇最好的樣本。此 ntpdate 命令使用以下方法進行時間調整:
* 如果它確定時鐘偏差超過 0.5 秒,它通過調用 settimeofday 子例程設置時鐘時間。在引導時間,這是一個首選的方法。
* 如果它確定時鐘偏差小於 0.5 秒,它通過調用 adjtime 子例程和偏移量來調整時鐘時間。此方法傾向於用犧牲一些穩定性來保持漂移時鐘更加准確。
當不是通過運行一個守護程序而是從 cron 命令有規則的運行 ntpdate 命令時,每一小時或兩小時執行一次可以保證足夠的走時精度,從而避免調整時鐘。 48 */1 * * * /usr/sbin/ntpdate -u 172.16.58.40 172.16.58.14 172.23.32.142 172.24.18.141 172.24.147.11
1 1 * * * /sbin/hwclock -w 注意事項:
1. 使用很多服務器可以大幅度改善 ntpdate 命令的可靠性與精度。盡管能使用單一服務器,但您能通過提供至少三個或四個服務器以獲得更好的性能。
2. 如果一個類似 xntpd 守護程序的 NTP 服務器守護程序正在同一主機上運行,命令將拒絕 ntpdate 設置日期。
3. 你必須有 root 權限才能在主機上運行這個命令。 注意, ntpdate 的准確性和可靠性取決於服務器的數量、每次運行它時的輪詢數以及運行之間的時間間隔。ntpdate 根據需要可以手動運行來設置主機時鐘,也可以從主機啟動腳本中運行,在引導時設置時鐘。某些情況下,它可用於在啟動NTP 守護程序xntpd 之前對時鐘進行初始設置。也可以從cron 腳本中運行ntpdate 。但是務必要注意,包含人為產生的cron 腳本的ntpdate 不能替代NTP 守護程序,後者使用高級算法,在盡量減少使用資源的同時,盡量提高准確性和可靠性。最後,由於ntpdate 不會像xntpd 一樣控制主機時鐘頻率,因此使用ntpdate 的准確性很有限