Возможно, вы настроили задания cron, которые запускаются в определенное время, для резервного копирования важных файлов или выполнения каких-либо системных задач.
Или, возможно, вы настроили сервер журналов на регулярную ротацию логов в вашей системе.
Если ваши часы не синхронизированы, эти задания не будут выполняться в нужное время.
Вот почему важно установить правильный часовой пояс в системах Linux и синхронизировать часы с Интернетом.
В этом руководстве рассказывается, как настроить синхронизацию времени в Ubuntu Linux.
Приведенные ниже шаги были протестированы в Ubuntu 18.04, однако они одинаковы для других систем на основе Ubuntu, которые используют службу timedc systemd.
Настройка синхронизации времени в Ubuntu
Обычно мы устанавливаем часовой пояс во время установки.
Однако вы можете изменить его или установить другой часовой пояс, если хотите.
Во-первых, давайте посмотрим текущий часовой пояс в нашей системе Ubuntu с помощью команды «date»:
$ date
Пример вывода:
Tue Jul 30 11:47:39 UTC 2019
Как видно из вышеприведенного вывода, команда «date» показывает фактическую дату, а также текущее время.
Здесь мой текущий часовой пояс – UTC, что означает Всемирное координированное время.
Кроме того, вы можете посмотреть файл /etc/timezone, чтобы найти текущий часовой пояс.
$ cat /etc/timezone UTC
Теперь посмотрим, синхронизированы ли часы с интернетом. Для этого просто запустите:
$ timedatectl
Пример вывода:
Local time: Tue 2019-07-30 11:53:58 UTC Universal time: Tue 2019-07-30 11:53:58 UTC RTC time: Tue 2019-07-30 11:53:59 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
Как вы можете видеть, команда «timedatectl» отображает местное время, универсальное время, часовой пояс, а также то, синхронизированы ли системные часы с интернет-серверами и активен или неактивен systemd-timesyncd.service.
В моем случае системные часы синхронизируются с интернет-серверами.
Примечание: скриншот выше. Вот почему вы видите разные даты.
Если вы видите «System clock synchronized: значение установлено как no, служба timesyncd может быть неактивна.
Итак, просто перезапустите сервис и посмотрите, поможет ли это
$ sudo systemctl restart systemd-timesyncd.service
Теперь проверьте статус сервиса timesyncd:
$ sudo systemctl status systemd-timesyncd.service ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-07-30 10:50:18 UTC; 1h 11min ago Docs: man:systemd-timesyncd.service(8) Main PID: 498 (systemd-timesyn) Status: "Synchronized to time server [2001:67c:1560:8003::c7]:123 (ntp.ubuntu.com)." Tasks: 2 (limit: 2319) CGroup: /system.slice/systemd-timesyncd.service └─498 /lib/systemd/systemd-timesyncd Jul 30 10:50:30 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:31 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:31 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:32 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:32 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:50:35 ubuntuserver systemd-timesyncd[498]: Network configuration changed, trying to estab Jul 30 10:51:06 ubuntuserver systemd-timesyncd[498]: Synchronized to time server [2001:67c:1560:800
Если эта служба включена и активна, ваши системные часы должны синхронизироваться с интернет-серверами времени.
Вы можете проверить, включена ли временная синхронизация или нет, используя команду:
$ timedatectl
Если это все еще не работает, выполните следующую команду, чтобы включить синхронизацию времени:
$ sudo timedatectl set-ntp true
Теперь ваши системные часы будут синхронизироваться с интернет-серверами времени.
Изменить часовой пояс с помощью команды Timedatectl
Что если я хочу использовать другой часовой пояс, отличный от UTC? Это легко!
Во-первых, список доступных часовых поясов можно вывести с помощью команды:
$ timedatectl list-timezones
Вы увидите вывод, похожий на изображение ниже.
Вы можете установить желаемый часовой пояс (например, Asia/Kolkata), используя команду:
$ sudo timedatectl set-timezone Asia/Kolkata
Еще раз проверьте, действительно ли был изменен часовой пояс с помощью команды «date»:
$ date
Tue Jul 30 17:52:33 IST 2019
Или используйте команду timedatectl, если хотите получить подробный вывод:
$ timedatectl Local time: Tue 2019-07-30 17:52:35 IST Universal time: Tue 2019-07-30 12:22:35 UTC RTC time: Tue 2019-07-30 12:22:36 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
Как вы заметили, я изменил часовой пояс с UTC на IST (индийское стандартное время).
Чтобы переключиться обратно на часовой пояс UTC, просто запустите:
$ sudo timedatectl set-timezone UTC