Комп старый, аккумулятор севший, при включении время 2000 год.
...
Тогда актуальный вопрос.
Как мне надо было правильно выполнить обновления времени при включении компа ?
Сервис синхронизации времени и аппаратных часов BIOS
для систем на System V init
Может применяться если сел элемент питания CMOS и RTC на системной плате (при наличии сети)
Первое с чем нужно определиться:
- В каком формате должно храниться время в BIOS (utc или localtime)
- Выяснить очередь старта сервисов network и NetworkManager
Формат времени в RTC (Real Time Clock) узнаём тут:
- Если false, - время в localtime
- Если true - время в utc
$ grep ^UTC /etc/sysconfig/clock
UTC=false
Определяемся с опциями команды (одноимённый пакет):
# man ntpdate | sed -n '71,78p'
-t timeout
Specify the maximum time waiting for a server response as the value timeout, in seconds and fraction. The
value is is rounded to a multiple of 0.2 seconds. The default is 1 second, a value suitable for polling
across a LAN.
-u Direct ntpdate to use an unprivileged port or outgoing packets. This is most useful when behind a firewall
that blocks incoming traffic to privileged ports, and you want to synchronise with hosts beyond the fire‐
wall. Note that the -d option always uses unprivileged ports.
Определяемся с опциями другой команды:
# man hwclock|sed -n '130,133p; 198,200p'
-w, --systohc
Set the Hardware Clock from the System Clock, and update the timestamps in /etc/adjtime. When the --update-
drift option is given, then also (re)calculate the drift factor.
--localtime
-u, --utc
Indicate which timescale the Hardware Clock is set to.
Узнаём очередь старта сервисов:
$ grep chkconfig /etc/rc.d/init.d/{NetworkManager,network,ntpd,dm}
/etc/rc.d/init.d/NetworkManager:# chkconfig: - 12 90
/etc/rc.d/init.d/network:# chkconfig: 345 10 90
/etc/rc.d/init.d/ntpd:# chkconfig: - 40 60
/etc/rc.d/init.d/dm:# chkconfig: 5 45 05
После этого внимательно читаем тут:
https://forum.altlinux.org/index.php?topic=32361.msg253079#msg253079намечая опорные точки:
- сервис должен отрабатывать после network и NetworkManager, но до сервиса dm
- требуется только старт сервиса, значит lock-файл не нужен.
Листинг файла-сервиса:
# cat /etc/rc.d/init.d/synctime
#!/bin/bash
#
# chkconfig: 2345 15 87
# description: system time synchronization service and Real Time Clock
# Source function library.
. /etc/rc.d/init.d/functions
start() {
ntpdate -t 0.5 -u by.pool.ntp.org &>/dev/null
hwclock -w --localtime
}
stop() {
# not needed
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start}"
exit 1
esac
exit 0
Команды в листиге адаптированы к Беларуси и localtime в CMOS. Адаптируйте под себя
http://www.pool.ntp.org/zone/europehttp://www.pool.ntp.org/zone/ruВремя ожидания ответа сервера времени выставлено в полсекунды, - будет необходимость, увеличьте. По-дефолту 1 секунда.
Не забудьте сделать файл сервиса исполняемым
# chmod +x /etc/rc.d/init.d/synctime
И про пустую строку в конце файла тоже не забудьте.
Сервис можно включать и выключать, - вмешиваться в последующем в листинг необязательно.
Сервис будет стартовать со 2-го по 5-й уровень запуска.
Команды добавления и проверки сервиса:
# chkconfig --list synctime
сервис synctime поддерживает chkconfig, но не используется ни на одном уровне выполнения (запустите 'chkconfig --add synctime')
# chkconfig --add synctime
# chkconfig --list synctime
synctime 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
В моей конфигурации для ntpd стоит запрет синхронизации времени на старте системы, чтобы исключить задержку на старте, на случай если сети не будет:
$ grep ^NTPD /etc/sysconfig/ntpd
NTPD_ARGS=-S
Детали по ссылке. Её содержимое может служить моделью для написания своего сервиса, если такая необходимость возникнет.
Сервис гарантированно работает и исправляет огромную разбежку во времени.
Проверка работы сервиса на любых платах:
Устанавливаем ложную дату и время имитируя севший элемент
# date -s "1 JAN 2000 00:00:00"
Сб янв 1 00:00:00 EET 2000
# date
Сб янв 1 00:00:15 EET 2000
# hwclock -w --localtime
# hwclock
2000-01-01 00:00:59.791045+0200
Восстанавливаем верное время
# service synctime start
Проверяем
Системное время
# date
Чт окт 19 20:10:40 +03 2017
и время BIOS
# hwclock
2017-10-19 20:10:46.545657+0300
Вроде бы всё упомянул и ничего не забыл, но если что, спрашивайте.
Дополнительно о настройке времени можно почитать тут:Устанавливаем в системе Linux время, дату и часовой пояс из командной строки или из Gnome | Используем ntpСообщите, если это то что нужно и проверьте у себя, тогда это можно будет отправить в
советы.
Чуть-чуть офтопика:
В стародавние времена была у меня Intel'овская плата под Pentium 200MMX. На плате была не "таблетка", а чип DALLAS. Хорошая плата, но аккумулятор на нуле и плату выбросил. А зря. Позже в сети нашёл простейшее аппаратное решение для использования "таблетки". Требуемая сложность владения паяльником на уровне мало-мальски приличного электрика.