Синхронизация времени

Проблемы с синхронизацией времени в linux

Эта статья больше про работу с лиуксами, для тех кто начинает с ними работать и не может понять, почему всё так сложно и ничего не работает. Я поделюсь процессом решения проблемы с синхронизацией времени.

Спецы из поиска в интернете сходу предлагали устанавливать или решать вопросы с ntp. Очевидно, это сработает, но я хочу разобраться - почему это не работает у меня?

sudo apt-get install ntp

Для всяких транзакций, авторизаций и прочего так важно точное время и нет встроенного решения?

Предчувствие не обмануло, оказалось, что Ubuntu использует timedatectl с ним мы и будем работать, его мы и попробуем починить.

timedatectl - это утилита для управления датой и времени системы. В доке так и написано:

timedatectl may be used to query and change the system clock and its settings, and enable or disable time synchronization services.

Проверка работы сервиса

Для начала, выполним команды, для проверки статусов работы соответствующих служб.

timedatectl

Тут нас интересует активен ли у нас NTP service. и включена ли синхронизация.

System clock synchronized: no             NTP service: n/a

И разумеется ни тебе синхронизации, ни тебе NTP service. Я попробовал разобраться, почему это всё поламалось, но не стал тратить слишком много времени.

Тем более, можно же просто все включить нет.

sudo timedatectl set-ntp onFailed to set ntp: NTP not supported

Но я не с рук в переходе ноут брал... Проверяем сервис systemd-timesyncd.

systemctl status systemd-timesyncd○ systemd-timesyncd.service     Loaded: masked (Reason: Unit systemd-timesyncd.service is masked.)     Active: inactive (dead)

Как видите там уже кто-то dead, но я реально давно не синкал время.

Судя по masked, кто-то (не я) запретил этой службе загружаться и снова, найти причину я не смог. В интерфейсе всё работает.

Тогда просто снимем маску и включим сервис, решил я, но естественно, это не сработало

sudo systemctl unmask systemd-timesyncdRemoved /etc/systemd/system/systemd-timesyncd.service.

Как оказалось, для блокировки запуска службы используются ссылки в /dev/null. Эта ссылка и была удалена. Отлично! Богаж пополнился новыми знаниями и теперь мы просто включим службу!

sudo systemctl enable systemd-timesyncdFailed to enable unit: Unit file systemd-timesyncd.service does not exist.

Нас вежливо проинформировали, что сервиса timesyncd не существует. Вероятно выпал из ноутбука, при переносе его со стола на диван.

Люди не покупали бы маки, если бы линукс не обладал таким количеством палок в колесах велосипедов.

Переустановка сервиса

Я решил, что бой не равный и просто переустановил systemd-timesyncd

sudo apt install --reinstall systemd-timesyncd

В логе переустановки увидел следующее:

The following NEW packages will be installed:  systemd-timesyncd

Ссылка на службу была, часики корректно работали. По факту, оказалось что в системе нет ничего чтобы могло синхронизировать время.

sudo systemctl start systemd-timesyncdsudo systemctl enable systemd-timesyncdsudo timedatectl set-ntp true
  1. Запускаем службу
  2. Включаем автозапуск
  3. активируем NTP

Осталось все проверить: служба активна, синхронизация запущена, NTP активен.

systemctl status systemd-timesyncdtimedatectl

Вот еще ссылка на доку по timedatectl и timesyncd.

Время синхронизируется, теперь я ложусь и встаю вовремя и понимаю почему ночью так ярко светит солнце.

Успехов в освоении линуксов!