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