Не представляю, как так вышло, но в моем сервере слетел часовой пояс. Возможно, часовой пояс был выставлен неправильно и при установке, но история это умалчивает. Так или иначе в какой-то момент это стало проблемой и пришлось все поменять.
Translation to English is here. Также основной канал в telegram.
Тот факт, что часовой пояс выставлен неправильно, меня как-то совсем не волновал до тех пор, пока я не начал читать логи. Вначале я просто ничего не понял. Но потом дошло, что логи верные, но смещены на несколько часов. На этом я и забил на проблему, просто стал держать в голове, что они смещены, да, я довольно ленивый...
Собственно, про проблемы выше я со временем благополучно забыл и вспомнил в следующий раз, когда установил кастомную интеграцию для синхронизации с термостатами для управления теплым полом. Каждый раз, когда я настраивал на них температуру, то обращал внимание, что время верное, но смещено на несколько часов. Признаться честно, прошло несколько месяцев, прежде чем до меня дошло, что интеграция, скорее всего, синхронизирует не только параметры, но и время. Когда в очередной раз время сбилось, и я проверил его на контроллере и сервере и увидел, что оно совпадает, то стало очевидно, что уже пора поменять часовой пояс.
Для начала стоит проверить настройки. Для этого выполним команду timedatectl
Если время и часовой пояс в ответе совпадают с вашим текущим, то все ОК. В моем же случае часовой пояс не совпадал с реальностью.
Системная time zone сконфигурирована по символической ссылке /etc/localtime на файл из папки /usr/share/zoneinfo.
Также можно посмотеть информацию о текущем часовом поясе через команду ls, выполнив запрос на отображение содержимого /etc/localtime
ls -l /etc/localtime
Теперь, когда мы знаем текущий часовой пояс, то остается лишь установить новую, но какую? Есть 2 способа точно... а) Мы при помощи файлового менеджера переходим в /usr/share/zoneinfo и ищем ближайшую подходящую б) при помощи команды timedatectl list-timezones. У меня отобразилось 425 строк с описанием зон. Мой Ульяновск уже есть и его можно смело выбирать.
Теперь остается лишь установить корректную часовую зону. При помощи команды sudo выполним команду:
sudo timedatectl set-timezone <your_time_zone> или в случае SU или root:
timedatectl set-timezone <your_time_zone>.
Вместо <your_time_zone> подставим America/New_York или в моем случае Europe/Ulyanovsk.
Таким образом команды могут выглядеть следующим образом:
sudo timedatectl set-timezone America/New_York или
timedatectl set-timezone Europe/Ulyanovsk
Но если в вашем случае timedatectl утилита отсутствует, то есть и другой способ. Нам поможет команда ln, она как раз сделает символическую ссылку.
1. Грохнем старую ссылку: sudo rm -rf /etc/localtime или rm -rf /etc/localtime
2. Подготовим новую sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime или ln -s /usr/share/zoneinfo/Europe/Ulyanovsk /etc/localtime
3. Проверим как все прошло, выполним команду date.
Уверен, что есть еще несколько способов и все они такие же простые, можете описать их в комментариях.
Таким образом в очередной раз мы убедились в том, что Linux на самом деле не такой сложный и вполне дружелюбный. Всем добра и пусть ваши часы всегда идут вовремя☺.
Подпишитесь, чтобы не пропускать следующий контент.
Нажмите лайк, если интересно, так я пойму какие публикации больше нужны моей публике.
Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube.
Мой блог является некоммерческим, поэтому позитивный комментарий, лайк или репост поможет публикациям выходить чаще ☺.