Я хотів би, щоб Ubuntu автоматично синхронізував свій системний годинник із таймером при запуску.
Однак мій ПК не підключений до Інтернету лише після того, як я ввійшов (плюс 5 - 10 секунд для хорошої міри).
Як я можу це зробити для цього?
Я хотів би, щоб Ubuntu автоматично синхронізував свій системний годинник із таймером при запуску.
Однак мій ПК не підключений до Інтернету лише після того, як я ввійшов (плюс 5 - 10 секунд для хорошої міри).
Як я можу це зробити для цього?
Відповіді:
Це робиться за допомогою NTP, щодо якого доступні інструкції . В основному вам потрібно буде встановити демон NTP. Здається, є кілька варіантів, але "стандартний" є в упаковці ntp
. Відповідно до інструкцій на пов’язаній сторінці,
sudo apt-get install ntp
отримає все налаштоване для синхронізації з NTP-сервером Ubuntu.
EDIT : Я пропустив "при запуску". Зазвичай рекомендується використовувати ntpd для постійної синхронізації між вашою системою та сервером, але якщо ви дійсно хочете синхронізуватись лише один раз, відповідь mfisch здається тим, що ви шукаєте.
Якщо ви перейдете до "Система-> Адміністрація-> Час і дата", ви отримаєте GUI для встановлення дати / часу.
Надається можливість використання серверів часу. Якщо ви перевірите це, і NTP не встановлений, він запитає, чи хочете ви встановити його. Просто натисніть "так", і нехай це робить свою роботу :)
Це можна зробити, використовуючи at і ntpdate . at, мабуть, уже встановлено, але ntpdate може не бути. (apt-get install ntpdate).
Спочатку створіть невеликий скрипт, який виконує ntpdate, і дозволить йому назвати update_time.sh.
#!/bin/bash
ntpdate pool.ntp.org
У свій .bash_login файл (який вам може знадобитися створити) додайте це:
at -f ~/update_time.sh now + 1 minute
Це має робити те, що ти хочеш. Ви можете змінити затримку, яка при використанні становить 5 хвилин, 10 хвилин і т.д.
EDIT: Я щойно зрозумів, що для запуску вам потрібно мати root ntpdate
. Вам потрібно буде встановити біт SUID для сценарію update_time.sh, який я згадав. Ви можете зробити це, запустивши це з команди (запустити її потрібно лише один раз):
sudo chmod 4711 update_time.sh
sudo chown root update_time.sh
at
? І якщо ви збираєтеся автоматично запускати ntpdate
, чому б не просто встановити ntp
послугу?
Оскільки Ubuntu 16.04 timedatectl / timesyncd (які є частиною systemd) замінює більшість ntpdate / ntp. Див. Розділ Синхронізація часу .
Можливо, вам буде потрібно активувати синхронізацію часу за допомогою:
$ sudo timedatectl set-ntp on
Якщо ви хочете використовувати chrony:
Якщо вам потрібна синхронізація одним знімком: $ chronyd -q
Якщо вам потрібна перевірка часу одним знімком, не встановлюючи використання часу: $ chronyd -Q
Для постійної синхронізації рекомендованим рішенням є хроніка:
хроніка (г)
Хронід демона NTP обчислює дрейф і зміщення ваших системних годин і постійно регулює його, тому немає великих виправлень, які можуть призвести, наприклад, до несуперечливих журналів. Вартість невелика потужність процесора та пам'яті, але для сучасного сервера це, як правило, незначно. Установка
Щоб встановити chrony, з підказки терміналу введіть:
$ sudo apt install chrony
Можливо, вам також знадобиться активувати
sudo timedatectl set-ntp увімкнено
Оновлення: Ще один метод, якщо вищезгадане не працює, - це встановити роботу cron для запуску$ chronyd -q