2015年4月7日 星期二

網路校時排程( ntpdate with crontab service )

最近剛好有學校要求幫忙處理server自動校時的設定,雖然蠻容易查到解決方法,不過還是簡單的做一下筆記與我的作法。
首先當然是要借助國家時間與頻率標準實驗室的服務。 ( http://www.stdtime.gov.tw/ ) 在  這個文字檔案 中有說明有哪些提供服務的 ntpd server,所以,如果不是要在local提供 ntpd server 服務的話[*],只要把所管理的伺服器往列表中的校準伺服器進行校準就可以了。 前段說的有關ntpd server的概念,可以參考鳥哥的Linux私房菜這一篇,寫得很詳盡。 如果是Windows OS要進行校時,比較單純的是網域環境下,只要是接受網域控管的用戶端電腦,自動會跟網域控站同步時間,如果要手動同步時間,可以透過命令提示字元 ( net time )
net time 應該可以讀取網域控制站的時間
net time /domain:網域名稱 /set   可以手動同步client時間 或者,想要透過群組原則,指定時間同步的來源 ( 也可以讓用戶端電腦對網域控制站以外的來源進行時間校準,不過這樣很怪吧? XD )
總之,這不是開始要寫這一篇文章的起點阿...  @@ 回到 crontab,可能要快轉一下了。首先是前面提到國家時間與頻率標準實驗室那個文字檔。裡面有列出提供服務的伺服器位址:
  • tock.stdtime.gov.tw
  • watch.stdtime.gov.tw
  • time.stdtime.gov.tw
  • clock.stdtime.gov.tw
  • tick.stdtime.gov.tw
在 Linux 當中,當然與WindowsOS道理相同,自身也有NTP服務,也可以接受外部NTP服務的校準,如果不是要提供服務,基本上也可以把ntpd給關了,因為如果ntpd服務在執行的狀態,ntpdate這個指令基本上也無法執行。 [root@dns ~]# ntpdate  time.stdtime.gov.tw  6 Jun 15:10:32 ntpdate[13417]: the NTP socket is in use, exiting 乾脆把ntp服務給關了
[root@dns ~]# service ntpd stop 正在關閉 ntpd:                                             [  確定  ] 再測試一次
這樣看來就沒有問題了。然後要做的事情就是讓這個指令排到 crontab 裡面執行而已,太簡單了 ^^ 當然,要定時執行有兩個方法,一是將命令寫成一個檔案 chmod +x 加上執行權限,把執行命令的執行檔加到排程當中。 另外一個方法就更簡單了點,直接把校準的指令寫到排程,一行字搞定! (  @daily ntpdate  time.stdtime.gov.tw #校準時間   )

( 原文發表於 http://bubble.bubbleliao.idv.tw/2014/06/ntpdate-with-crontab-service.html )

沒有留言:

張貼留言