在我的 Ubuntu 10.04 上,我(一个用户,不是 root)可以发出
sudo net time set
而且效果非常好。
我希望盒子能更定期地获取净时间,或者至少在每次登录时获取。因此,我尝试添加净时间设置到/etc/配置文件。失败了。我添加了如下节
user ALL=(ALL) NOPASSWD: /usr/bin/net
到/etc/sudoers(使用维苏多)。没帮助。
我从未碰过计划任务所以我不知道如何添加 chron 标签。(依靠系统时间来重置系统时间似乎有些矛盾。)
- 做这个的最好方式是什么?
- 如果这是一项 cron 作业,我希望能够提供一个简单的示例。
- 同样的疑问,但针对的是命令服务 dhcp3-服务器重新启动?
(是的,我的盒子通过 dhcp 获取其地址,但是它的 dhcp 服务器控制连接到高速摄像机的 4 个千兆 enet 卡。有时,在登录?启动时?dhcp 服务器让我只能看到 1 个摄像机。)
提前致谢。
答案1
(是的,我正在添加第二个答案。)
根据您的描述,您已经在 中添加了适当的行/etc/sudoers
,但您并未sudo
在 中调用/etc/profile
。
命令/etc/profile
需要是:
sudo net time set
请注意,每次任何帐户登录时,这都会运行。这是您想要的,还是将命令放入更有意义$HOME/.profile
?
为了使其成为 cron 作业,您可以添加如下内容:
0 * * * * * sudo net time set
到,比如说,foo.txt
然后crontab foo.txt
。之后,crontab -l
将显示您当前的 cron 作业。使用给定的参数,作业将每小时运行一次;man 5 crontab
并根据需要进行调整。那里可能因为 cron 作业在最小环境中运行,所以可能会出现一些问题,但我认为它不/usr/bin/net
依赖于任何环境变量。
请注意,与 不同ntpd
,这可能会导致系统时钟向后跳转,从而导致问题。
答案2
别打扰。
保持系统时钟同步的常用方法是ntpd
。它应该在 Ubuntu 上默认安装和配置。您是否正在ntpd
运行某个进程?您的系统时钟是否不正确?
编辑 :
从您对我的其他答案的评论来看,您似乎有一个可以使用的 NTP 服务器。
ntp
您的系统上 应该已经安装了该软件。dpkg -l ntp
验证。 您可能已经有一个ntpd
守护进程在运行,但它无法工作,因为它不知道要与哪个服务器通信;ps -ef | grep ntpd
确认这一点。
/etc/ntp.conf
是ntp的配置文件,默认版本有:
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
注释掉这些行并添加:
server your.ntp.server
然后运行:
sudo /etc/init.d ntp restart
man ntpd
了解更多详细信息,但这足以让您开始。