Синхронизация времени
Эта статья больше про работу с лиуксами, для тех кто начинает с ними работать и не может понять, почему всё так сложно и ничего не работает. Я поделюсь процессом решения проблемы с синхронизацией времени.
Спецы из поиска в интернете сходу предлагали устанавливать или решать вопросы с 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-timesyncd
Removed /etc/systemd/system/systemd-timesyncd.service.
Как оказалось, для блокировки запуска службы используются ссылки в /dev/null. Эта ссылка и была удалена. Отлично! Богаж пополнился новыми знаниями и теперь мы просто включим службу!
sudo systemctl enable systemd-timesyncd
Failed 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-timesyncd
sudo systemctl enable systemd-timesyncd
sudo timedatectl set-ntp true
- Запускаем службу
- Включаем автозапуск
- активируем NTP
Осталось все проверить: служба активна, синхронизация запущена, NTP активен.
systemctl status systemd-timesyncdtimedatectl
Вот еще ссылка на доку по timedatectl и timesyncd.
Время синхронизируется, теперь я ложусь и встаю вовремя и понимаю почему ночью так ярко светит солнце.
Успехов в освоении линуксов!