LINUX.ORG.RU

Заставить ntpdate синхронизировать время при старте.

 


0

2

Xubuntu 18.04.3 Борюсь уже несколько дней, не выходит. В общем, нужно, чтобы время при запуске системы синхронизировалось с сервером. В самом начале отключил timesyncd командой:

sudo timedatectl set-ntp no
Прописал в /etc/ntp.conf нужный мне сервер:
server "сервер"
. Сделал, чтобы время не прибавлялось по моему поясу и не было различия между временем операционки и биоса:
timedatectl set-local-rtc 1
Перед этим линукс прибавлял ко времени биоса 3 часа в операционке. Далее от рута
crontab -e
и добавил строчку
@reboot ntpdate -u "сервер"
где сервер адрес сервера. При старте время не меняется, а меняется примерно через минуты 3-5. Нужно, чтобы синхронизация происходила сразу же при старте системы.



Последнее исправление: greendoom (всего исправлений: 4)

При старте время не меняется

Странно было бы ожидать этого, записав @reboot в crontab.

Надо написать юнит, который будет запускаться перед ntpd, и в котором будет ntpdate -u «сервер»

P.S. А чем не устроил systemd-timesyncd и прописывание своего ntp-сервера в /etc/systemd/timesyncd.conf, что ты его специально отключил?

Deleted
()

raspbian8, опция из коробки, полёт нормальный. Здесь это ПЦ как актуально, так что они всё хорошо отладили. Системд, синхронизация в течении 2 минут после появлении интернета.

Лично я вникать в процесс не хочу, а если у вас нормальный интернет, то вы можете скачать его образ (очевидно в 9-е и 10-е тоже всё должно быть отлажено), распаковать и посмотреть конфиги. Должно занять минут 15-20 на приличном компе.

kirill_rrr ★★★★★
()

man ntpd, смотри опцию "-x"

anonymous
()

Лучше запускать ntpdate не при загрузке, а при активации соединения - ему же всё равно нужна сеть. Смотрите в сторону /etc/NetworkManager/dispatcher.d/ или /etc/network/if-up.d/.

Или же можете написать сервис systemd наподобие:

[Unit]
Description=Synchronize system date and time using ntpdate
Requires=network-online.target
After=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ntpdate -u <сервер>

[Install]
WantedBy=multi-user.target
Rootlexx ★★★★★
()
Ответ на: комментарий от greendoom

синхронизация запускается сервисом

$ systemctl | grep time
  systemd-timesyncd.service  loaded active running   Network Time Synchronization

оно прописано на запуск в WantedBy=sysinit.target но когда запускается хз

приписать быстрый костыль my_time_sync.timer и включить в загрузку.

[Unit]
Description=start after 0 on boot
After=network.target

[Timer]
OnActiveSec=0
Unit=systemd-timesyncd.service

[Install]
WantedBy=multi-user.target

таймер запустится после проверки сети и запустит сервис. както так.

pfg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.