# Служба времени

## Описание

* Система Linux берет время с аппаратных часов устройства, на котором она установлена
  * Соответственно если данные часы не работают или отсутствуют, то любые программные манипуляции с часами будут отдавать неправильное время
  * Для манипуляций с аппаратными часами используется утилита **hwclock**
  * Настройка времени в системе определяется через **timedatectl** (ранее использовалась служба date)
* Время также может синхронизироваться с NTP сервером по соответствующему протоколу
  * Однако если разрыв в часах превысит 1000 секунд, то система перестанет синхронизировать время по NTP, считая, что возникла какая-то проблема
  * Автоматических инструментов исправления рассинхронизации нет

## Работа со временем

* **hwclock** - установка аппаратных часов и синхронизация с системными часами
* **date** - установка текущего времени и формата его отображения
* **tzselect** - установка часового пояса
* **timedatectl** - новая утилита для работы со всеми аспектами времени

```
[root@centos8 ~]# timedatectl --help
timedatectl [OPTIONS...] COMMAND ...

Query or change system time and date settings.

  -h --help                Show this help message
     --version             Show package version
     --no-pager            Do not pipe output into a pager
     --no-ask-password     Do not prompt for password
  -H --host=[USER@]HOST    Operate on remote host
  -M --machine=CONTAINER   Operate on local container
     --adjust-system-clock Adjust system clock when changing local RTC mode
     --monitor             Monitor status of systemd-timesyncd
  -p --property=NAME       Show only properties by this name
  -a --all                 Show all properties, including empty ones
     --value               When showing properties, only print the value

Commands:
  status                   Show current time settings
  show                     Show properties of systemd-timedated
  set-time TIME            Set system time
  set-timezone ZONE        Set system time zone
  list-timezones           Show known time zones
  set-local-rtc BOOL       Control whether RTC is in local time
  set-ntp BOOL             Enable or disable network time synchronization

systemd-timesyncd Commands:
  timesync-status          Show status of systemd-timesyncd
  show-timesync            Show properties of systemd-timesyncd
```
