Linux устанавливает время из сети при входе в систему

Linux устанавливает время из сети при входе в систему

На моем компьютере с Ubuntu 10.04 я (пользователь, не root) могу выполнить команду

sudo net time set

и это работает отлично.

Я бы предпочел, чтобы ящик получал чистое время на более регулярной основе или, по крайней мере, каждый раз, когда он входит в систему. Поэтому я попробовал добавитьчистое время установленок/etc/профиль. Это не удалось. Я добавил строфы, которые выглядят как

user ALL=(ALL) NOPASSWD: /usr/bin/net

к/etc/sudoers(с использованиемвизудо). Не помогло.

Я никогда не трогалхронпоэтому я понятия не имею, как добавить вкладку хронологии. (кажется, это оксюморон — зависеть от системного времени для сброса системного времени.)

  1. Как лучше всего это сделать?
  2. Если это задание cron, я был бы признателен за краткий пример.
  3. Те же вопросы, но для командыперезапуск службы dhcp3-сервера?

(да, мой ящик получает свой адрес по DHCP, но его DHCP-сервер управляет 4 гигабитными сетевыми картами, подключенными к высокоскоростным камерам. Иногда при входе в систему? загрузке? 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для получения более подробной информации, но для начала вам этого должно быть достаточно.

Связанный контент