Рейтинг:0

timedatectl на сервере Ubuntu 20.04

флаг cn

У меня есть сервер Ubuntu (20.04), на котором timedatectl не может установить часовой пояс. При первом вызове он всегда терпит неудачу, при втором он думает, что это удалось, но на самом деле это не так:

Предварительно часовой пояс - Европа/Париж:

root@oxpad:~# timedatectl 
               Местное время: ср 2021-08-11 02:02:44 CEST
           Всемирное время: ср 2021-08-11 00:02:44 UTC 
                 Время RTC: ср 2021-08-11 00:02:44     
                Часовой пояс: Европа/Париж (CEST, +0200)  
Синхронизация системных часов: да                         
              Служба NTP: активна                      
          RTC в местной ТЗ: нет                          

** Время CEST == Среднеевропейское летнее время **

root@oxpad:~# дата
Ср 11 авг 02:02:46 CEST 2021

Изменить часовой пояс:

root@oxpad:~# timedatectl set-timezone Европа/Лондон
Не удалось установить часовой пояс: доступ запрещен
root@oxpad:~# timedatectl set-timezone Европа/Лондон
root@oxpad:~#

Очевидный успех

root@oxpad:~# timedatectl 
               Местное время: ср 2021-08-11 01:02:58 BST
           Всемирное время: ср 2021-08-11 00:02:58 UTC
                 Время RTC: ср 2021-08-11 00:02:58    
                Часовой пояс: Европа/Лондон (BST, +0100) 
Синхронизация системных часов: да                        
              Служба NTP: активна                     
          RTC в местной ТЗ: нет                         

Но фактический провал

root@oxpad:~# дата
Ср 11 авг 02:02:59 CEST 2021
root@oxpad:~# 

да и вообще никакие другие сервисы не видят обновленное местное время. Кажется, только timedatectl думает, что это удалось.

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

Интересно, что установка часового пояса в настольной системе Ubuntu 20.04 с помощью timedatectl работает нормально. Это похоже на то, как если бы timedatectl устанавливает часовой пояс поверх dbus, но dbus не настроен должным образом в серверной версии ОС.

Все это тестирование проводится на новых установках, не старше нескольких дней и чистых, за исключением добавления нескольких пакетов.

Кто-нибудь знает, что здесь происходит? Помощь будет высоко оценена.

Еще журналы: На сервере Ubuntu 20.04 ошибка в логах при смене времени, на десктопе 20.04 тот же сервисный лог показывает успех. Ошибка:

root@oxpad:~# статус systemctl systemd-timedated
▪ systemd-timedated.service — служба времени и даты
     Загружено: загружено (/lib/systemd/system/systemd-timedated.service; статично; предустановка поставщика: включена)
     Активный: неактивный (мертвый)
       Документы: man:systemd-timedated.service(8)
             человек: местное время (5)
             https://www.freedesktop.org/wiki/Software/systemd/timedated

11 августа, 02:02:33 oxpad systemd[1]: systemd-timedated.service: успешно.
11 августа 02:02:38 oxpad systemd[1]: запуск службы времени и даты...
11 августа, 02:02:38 oxpad systemd[1]: запущена служба времени и даты.
11 августа, 02:02:38 oxpad systemd-timedated[35339]: не удалось установить часовой пояс: в доступе отказано
11 августа, 02:02:53 oxpad systemd-timedated[35339]: не удалось установить часовой пояс: в доступе отказано
флаг cn
Примечание. Установка часового пояса с помощью `dpkg-reconfigure tzdata` работает, однако выбор часового пояса в интерактивном меню не очень поддается автоматизации.
флаг cn
Интересная, но не особо полезная ссылка: https://www.freedesktop.org/wiki/Software/systemd/timedated/
Рейтинг:1
флаг jp

Я не смог воспроизвести вашу ошибку на обычном образе Ubuntu 20.04. Вы должны проверить, изменилась ли команда /etc/часовой пояс и /etc/местное время символическая ссылка. Также проверьте права доступа к этим файлам. Если вы работаете Селинукс или другое программное обеспечение безопасности, то это еще одна возможная причина ошибки.

root@ubuntu:~# дата
Ср, 11 августа, 16:05:25 UTC 2021
root@ubuntu:~# timedatectl
               Местное время: ср 2021-08-11 16:05:28 UTC
           Всемирное время: ср 2021-08-11 16:05:28 UTC
                 Время RTC: ср 2021-08-11 16:05:29
                Часовой пояс: Ec/UTC (UTC, +0000)
Синхронизация системных часов: да
              Служба NTP: активна
          RTC в местной ТЗ: нет
root@ubuntu:~# кошка /etc/часовой пояс
И т.д./всемирное координированное время
root@ubuntu:~# ls -l /etc/localtime
lrwxrwxrwx 1 root root 29 авг 11 15:39 /etc/localtime -> ../usr/share/zoneinfo/Etc/UTC


root@ubuntu:~# timedatectl set-timezone Европа/Лондон
root@ubuntu:~# дата
Ср 11 августа 17:05:51 BST 2021
root@ubuntu:~# timedatectl
               Местное время: ср 2021-08-11 17:05:59 BST
           Всемирное время: ср 2021-08-11 16:05:59 UTC
                 Время RTC: ср 2021-08-11 16:06:00
                Часовой пояс: Европа/Лондон (BST, +0100)
Синхронизация системных часов: да
              Служба NTP: активна
          RTC в местной ТЗ: нет
root@ubuntu:~# кошка /etc/часовой пояс
Европа/Лондон
root@ubuntu:~# ls -l /etc/localtime
lrwxrwxrwx 1 root root 35 11 августа 17:05 /etc/localtime -> ../usr/share/zoneinfo/Europe/London

Эти шаги — еще один способ автоматизировать изменение часового пояса.

  1. Обновите /etc/местное время символическая ссылка
  2. Бег dpkg-reconfigure --frontend неинтерактивный tzdata

Вы можете видеть, что эти шаги обновят /etc/часовой пояс также файл.

root@ubuntu:~# дата
Ср, 11 августа, 16:09:30 UTC 2021
root@ubuntu:~# ln -f -s /usr/share/zoneinfo/Европа/Лондон /etc/localtime
root@ubuntu:~# dpkg-reconfigure --frontend неинтерактивный tzdata

Текущий часовой пояс по умолчанию: «Европа/Лондон».
Местное время сейчас: среда, 11 августа, 17:10:30 BST 2021.
Универсальное время сейчас: среда, 11 августа, 16:10:30 UTC 2021.

root@ubuntu:~# дата
Ср 11 августа 17:10:34 BST 2021
root@ubuntu:~# кошка /etc/часовой пояс
Европа/Лондон
root@ubuntu:~# ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 авг 11 17:10 /etc/localtime -> /usr/share/zoneinfo/Europe/London
флаг cn
Что касается обновления символической ссылки и запуска dpkg-reconfigure, это то, что я сделал, и это работает. Спасибо за предложение, оно поможет будущим читателям!
флаг cn
Что касается проверки разрешений и Selinux, я сделал это, но не получил удовольствия. Далее я попытаюсь изменить службу, которая запускает демон timedatectl, чтобы он работал внутри strace, чтобы я мог видеть, что он делает. Я бы предпочел добраться до корня проблемы, чем пытаться ее обойти.

Ответить или комментировать

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