linux下自动同步internet时间
linux下很简单直接一句即可: ntpdate time.nist.govntp后面参数为internet时间服务器url或ip即可。但是ntpdate命令需要root特权,如果做成自动运行每次要手动输入就不爽鸟,如何解决呢? 3中办法:1 直接echo管道输入密码:echo "your_passwd"|sudo -S ntpdate time.nist.gov这
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,关掉鸟,结果勉强达成目鸟。:(
更多推荐
所有评论(0)