閱讀80 返回首頁    go 阿裏雲 go 技術社區[雲棲]


linux下自動同步internet時間

linux下很簡單直接一句即可: ntpdate time.nist.gov

ntp後麵參數為internet時間服務器url或ip即可。

但是ntpdate命令需要root特權,如果做成自動運行每次要手動輸入

就不爽鳥,如何解決呢? 3種辦法:


1 直接echo管道輸入密碼:

echo "your_passwd"|sudo -S ntpdate time.nist.gov

這個方法缺點是密碼是明文,容易被黑。


2expect自動輸入密碼:

#!/usr/bin/expect

set timeout 30
spawn sudo ntpdate time.nist.gov
expect "password"
send "your_passwd\r"
interact

expect後麵的string要和sudo等待提示符string相匹配哦,否則

停不下來的,缺點同上,容易被黑。


3將ntpdate命令設為不需要sudo密碼:

vi /etc/sudoers

添加一行:

root ALL=NOPASSWD:/usr/sbin/ntpdate

以後任何人運行ntpdate這個命令都不需要密碼鳥。


試過links和curl以及wget,從標準時間網站抓取頁麵,然後分析之,結果

動態的統統抓不到,用瀏覽器的另存為倒沒問題,不過沒法搞自動化哦。

網上說利用瀏覽器的引擎寫代碼可以,不過比較複雜隻有作罷鳥。


題外話:

知道在win7上咋自動同步嗎?難啊!!!(歡迎反駁,並給出證據)

控製台下用w32tm,和net time統統無效,貌似在xp上是可以的。

最後用ruby寫代碼搞定鳥:

gem install net-ntp


require 'net/ntp'

right_date = Net::NTP.get.time
d=right_date.strftime("%Y-%m-%d")
t=right_date.strftime("%H:%M:%S")
`date #{d}`
`time #{t}`

加入啟動文件夾,還要應付該死的UAC,關掉鳥,結果勉強達成目鳥。:(

最後更新:2017-04-03 15:21:55

  上一篇:go xp+WinDBG+VMware調試內核
  下一篇:go 網絡子係統5_設備隊列規則