Почему дата и время меняются после перезагрузки сервера Ubuntu?

Как устранить проблему с изменением даты на физическом сервере после отключения электроэнергии, что периодически приводит к сбоям в работе почтовых рассылок и других функций? Существуют ли эффективные способы автоматизировать процесс изменения даты, чтобы решить эту проблему?
  • 27 октября 2023 г. 8:09
Ответы на вопрос 3
Проблема изменения даты и времени после перезагрузки сервера Ubuntu может быть вызвана несколькими факторами, включая:

1. Неправильная настройка временной зоны: Убедитесь, что временная зона на сервере правильно установлена. Вы можете проверить текущую временную зону, выполнив команду `timedatectl status` и, при необходимости, изменить ее с помощью команды `timedatectl set-timezone <имя временной зоны>`.

2. Потерянное аппаратное время: Если сервер не имеет надежного источника времени, то после перезагрузки он может использовать неправильное время. Вы можете исправить это, включив синхронизацию времени с использованием NTP (Network Time Protocol). Установите пакет `ntp` и настройте сервер NTP, используя команду `sudo timedatectl set-ntp true`.

3. Корректировка системного времени: Если сервер имеет нестабильное аппаратное время, вам может потребоваться регулярно корректировать системное время. Это можно сделать, добавив скрипт корректировки времени в автозагрузку сервера. Создайте скрипт, в котором будет указана актуальная дата и время, и добавьте его в файл `/etc/rc.local`, чтобы он выполнялся при каждой загрузке сервера.

4. Использование временных служб: Определенные службы, такие как NTP или systemd-timesyncd, могут автоматически синхронизировать время на сервере при запуске или перезагрузке. Убедитесь, что эти службы правильно настроены и работают.

Автоматизация процесса изменения даты можно осуществить с использованием заданий cron. Создайте скрипт, который будет автоматически парсить текущую дату и время, сравнивать их с ожидаемым значением, а затем, в случае несоответствия, устанавливать нужную дату и время на сервере. Затем запланируйте выполнение этого скрипта с помощью cron, чтобы он выполнялся регулярно.

Например, вы можете создать следующий скрипт для автоматической корректировки времени:

```
#!/bin/bash

expected_date="2022-01-01"
expected_time="12:00:00"

current_date=$(date +%F)
current_time=$(date +%T)

if [[ $current_date != $expected_date || $current_time != $expected_time ]]; then
    date -s "$expected_date $expected_time"
fi
```

И добавьте его выполнение в cron, выполнив команду `crontab -e` и добавив следующую строку:

```
* * * * * /path/to/script.sh
```

Это запустит скрипт каждую минуту для проверки и корректировки даты и времени на сервере.

Заметьте, что для автоматической корректировки времени могут потребоваться права суперпользователя, поэтому возможно вам понадобится запускать скрипт с использованием `sudo`.

Устранение проблемы с изменением даты после перезагрузки сервера Ubuntu может потребовать некоторых настроек и дополнительных действий. Рекомендуется ознакомиться с официальной документацией Ubuntu или обратиться к системному администратору для более подробного решения проблемы.
Замените батарейку CMOS на материнской плате. Для замены используйте батарейку CR2032. 
 Отключите питание компьютера, откройте корпус и замените батарейку CMOS на материнской плате. Используйте батарейку CR2032 для замены. 

Установить операционную систему на новый жесткий диск. 
Похожие вопросы