Страница 1 из 1
systemd-timesyncd в Linux Mint
Добавлено: 11 янв 2018, 19:27
Chocobo
systemd-timesyncd - встроенная в systemd служба для синхронизации времени компьютера с ntp-серверами.
Вполне пригодна к использованию вместо шатного
ntp.service
, да и отрабатывает, по наблюдениям, явно шустрей чем ntpd.
Для запуска службы потребуется:
1. Гасим имеющийся сервис и удаляем пакет ntp, вместе они не уживутся:
sudo systemctl disable ntp.service
apt remove ntp
2.Запускаем timesyncd
sudo timedatectl set-ntp true
3. Правим конфиг
/etc/systemd/timesyncd.conf
туда надо добавить основные и резервные сервера, к примеру я добавил следующие строки
Код: Выделить всё
NTP=ntp1.stratum2.ru ntp2.stratum2.ru ntp3.stratum2.ru
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org
4. рестарутем и проверям сервис и синхронизацию:
sudo systemctl restart systemd-timesyncd.service
Код: Выделить всё
chocobo@desktop ~ $ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: active (running) since Чт 2018-01-11 19:18:33 MSK; 7min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 3518 (systemd-timesyn)
Status: "Synchronized to time server 88.147.254.235:123 (ntp1.stratum2.ru)."
CGroup: /system.slice/systemd-timesyncd.service
└─3518 /lib/systemd/systemd-timesyncd
янв 11 19:18:33 desktop systemd[1]: Starting Network Time Synchronization...
янв 11 19:18:33 desktop systemd[1]: Started Network Time Synchronization.
янв 11 19:18:33 desktop systemd-timesyncd[3518]: Synchronized to time server 88.147.254.235:123 (ntp1.stratum2.ru).
Код: Выделить всё
chocobo@desktop ~ $ timedatectl
Local time: Чт 2018-01-11 19:26:46 MSK
Universal time: Чт 2018-01-11 16:26:46 UTC
RTC time: Чт 2018-01-11 16:26:46
Time zone: Europe/Moscow (MSK, +0300)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
На этом все

systemd-timesyncd в Linux Mint
Добавлено: 11 янв 2018, 22:54
madesta
А по какому критерию устанавливалось, что отрабатывает шустрее?
Насколько понимаю из листингов выше, обращение идёт на stratum.ru, т.е. серверы ntp расположены в России. Можно убедиться самому, что IP-адрес 88.147.254.235 принадлежит хосту ns5.hsdn.org в славном городе Саратов.
По умолчанию, Linux Mint использует ntpdate и ntpd.
ntpdate запускается при каждой загрузке системы 1 раз для установки времени по NTP серверу Ubuntu.
ntpd вычисляет "уход" системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах.
В настройке по умолчанию ntp-сервер Ubuntu имеет значение ntp.ubuntu.com
На самом деле узел ntp.ubuntu.com представляет собой не отдельный сервер, а запись в DNS, перенаправляющую запрос к другим узлам. В частности, в результате одного из запросов ping ntp.ubuntu.com было осуществлено обращение к узлу juniperberry.canonical.com, расположенному в Великобритании.
Полагаю, никто не будет спорить, что для географического расположения "Россия" доступ к российским серверам будет происходить "шустрее", чем к британским.
Лично для себя, несмотря на национальный ntp-сервер, выбрал российский timeserver.ru, сопоставив его IP узлу ntp.ubuntu.com в своём DNS-сервере. Впрочем, если имеется только 1 компьютер, то можно было просто внести эту запись в hosts
systemd-timesyncd в Linux Mint
Добавлено: 11 янв 2018, 23:39
Chocobo
"Национальные" сервера выбраны мной в данном примере почти наобум. Нагуглил в рудомене, и вбил в конфиги)
Да и дело не только в удаленности серверов. Будь он хоть в атлантиде - все равно отклик в несколько секнуд будет оверхедом в наши дни)
В
соседнем обсуждении plot'ов пробежавшись по страницам - можно увидеть как то и дело ntpd сходил с ума у кого-нибудь, задерживая загрузку на 40 сек, а то и на 3 с лишним минуты...
Текущая цифра с последней загрузки по таймсинкд.
Да и в общем мне, как человеку приближенному к администрированию ОС - просто нравится, как устроены системдшные сервисы. Информативно и под рукой.
Не призываю никого выпиливать у себя дефолтный ntpd - здесь лишь описана процедура настройки альтернативного сервиса, который также доступен искаропки

systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 00:13
di_mok
А можно в качестве сервера прописать роутер, и всё будет под боком
systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 00:19
Chocobo
Ну и заодно провел сейчас сравнение на ноуте с лмде2, где таймсинкд еще не был запущен. На одинаковых дефолтных серверах.
вот что вышло:
Код: Выделить всё
systemd-analyze blame | grep ntp
6.310s ntp.service
ntp.conf
Код: Выделить всё
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst
journalctl
Код: Выделить всё
янв 11 23:48:41 workbook systemd[1]: Starting LSB: Start NTP daemon...
янв 11 23:48:47 workbook ntpd[821]: ntpd 4.2.6p5@1.2349-o Fri Jul 22 17:30:51 UT
янв 11 23:48:47 workbook ntpd[828]: proto: precision = 0.120 usec
янв 11 23:48:47 workbook ntp[691]: Starting NTP server: ntpd.
янв 11 23:48:47 workbook ntpd[828]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP
янв 11 23:48:47 workbook systemd[1]: Started LSB: Start NTP daemon.
стоит конечно учитывать то, что еще и ntp-сервер стартует, только вот нафига он мне, когда нужен только клиент?
Код: Выделить всё
systemd-analyze blame | grep timesyncd
577ms systemd-timesyncd.service
timesyncd.conf
Код: Выделить всё
[Time]
Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
journalctl
Код: Выделить всё
янв 12 00:07:38 workbook systemd[1]: Starting Network Time Synchronization...
янв 12 00:07:39 workbook systemd[1]: Started Network Time Synchronization.
di_mok писал(а): ↑12 янв 2018, 00:13
А можно в качестве сервера прописать роутер
Думаю не все они умеют выступать в качестве ntp-сервера)
systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 01:16
di_mok
Chocobo писал(а): ↑12 янв 2018, 00:19
не все они умеют
Это да. Но мои любимые на OpenWRT\LeDe могут.
systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 10:18
Unborn
Chocobo писал(а): ↑11 янв 2018, 23:39
пробежавшись по страницам - можно увидеть как то и дело ntpd сходил с ума у кого-нибудь, задерживая загрузку на 40 сек, а то и на 3 с лишним минуты...
Chocobo писал(а): ↑11 янв 2018, 23:39
Да и в общем мне, как человеку приближенному к администрированию ОС - просто нравится, как устроены системдшные сервисы. Информативно и под рукой.
Не призываю никого выпиливать у себя дефолтный ntpd - здесь лишь описана процедура настройки альтернативного сервиса, который также доступен искаропки
понятно конечно, но тут всё дело в том, что в Дебиан-Убунту-Минт и т.д. двойная, гибридная, да как хотите называйте, система инициализации. Вот оттуда ноги растут. Если в Дебиан ещё это отлажено, то дальше...
С системойДЫ не только сервисы, там много чего интересного. Но дистр нужен не Минт.

systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 11:02
Chocobo
Unborn писал(а): ↑12 янв 2018, 10:18
двойная, гибридная, да как хотите называйте
Это как?)
помню конечно, как Джесси посреди срока поддержки спрыгнула на systemd, как в 14.04 и минт 17.Х были ошметки компонентов системды, несмотря на управление апстартом.
Но сейчас это все уже почти история. Рулит всем в последних релизах systemd, никаких гибридов не осталось. Моноинитизм
Unborn писал(а): ↑12 янв 2018, 10:18
Но дистр нужен не Минт.

В умелых руках...

systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 11:43
Unborn
Chocobo писал(а): ↑12 янв 2018, 11:02
Рулит всем в последних релизах systemd, никаких гибридов не осталось.
Вот когда не увидишь каталогов /etc/init и /etc/init.d с кучей содержимого, тогда возрадуешься. А пока вон samba запускается преобразованием скрипта в сервис.
И еще забудешь, что такое /var/log/syslog а будешь пользоваться journalctl, конфиг его настроишь от нечего делать, а то по дефолту он нигде не айс.
И преобразователь в сервисы будешь держать только на всякий случай, вот тогда - системаДЫ, а сейчас - ГМО.
systemd-timesyncd в Linux Mint
Добавлено: 12 янв 2018, 11:54
Chocobo
Unborn, хех, так это не к двойной системе инициализации - а к ментейнерам пакетов, которые не спешат переписывать init-скрипты на .service юниты, не более.
Поэтому системда несет в себе обратную совместимость с ними через
systemd-sysv
.
Могу сказать к примеру, что такая же ситуация и в rhel7, на паре хостов еще не добрался до init-скриптов redis (redis-sentinel) и заббикс агентов, руки не дошли - тоже пока тянутся из init.d
[root@REDIS-N3 ~]# systemctl status zabbix-agent
● zabbix-agent.service - LSB: Start and stop Zabbix agent
Loaded: loaded (/etc/rc.d/init.d/zabbix-agent)
Active: active (running) since Вт 2018-01-09 14:54:43 GMT-3; 2 days ago
Docs: man:systemd-sysv-generator(8)
Process: 3261 ExecStop=/etc/rc.d/init.d/zabbix-agent stop (code=exited, status=0/SUCCESS)
Process: 3272 ExecStart=/etc/rc.d/init.d/zabbix-agent start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/zabbix-agent.service
├─3279 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─3281 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─3282 /usr/sbin/zabbix_agentd: listener #1 [waiting for connectio...
├─3283 /usr/sbin/zabbix_agentd: listener #2 [waiting for connectio...
├─3284 /usr/sbin/zabbix_agentd: listener #3 [waiting for connectio...
└─3285 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
янв 09 14:54:43 REDIS-N3.localhost systemd[1]: Starting LSB: Start an...
янв 09 14:54:43 REDIS-N3.localhost zabbix-agent[3272]: Starting Zabbi...
янв 09 14:54:43 REDIS-N3.localhost systemd[1]: Started LSB: Start and...
Hint: Some lines were ellipsized, use -l to show in full.
[root@REDIS-N3 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
[root@APP-N51 ~]# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Вт 2018-01-09 12:51:01 +03; 2 days ago
Process: 9889 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 9891 (zabbix_agentd)
CGroup: /system.slice/zabbix-agent.service
├─9891 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─9892 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─9893 /usr/sbin/zabbix_agentd: listener #1 [waiting for connectio...
├─9894 /usr/sbin/zabbix_agentd: listener #2 [waiting for connectio...
├─9896 /usr/sbin/zabbix_agentd: listener #3 [waiting for connectio...
└─9899 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
янв 09 12:51:01 APP-N51.localhost systemd[1]: Starting Zabbix Agent...
янв 09 12:51:01 APP-N51.localhost systemd[1]: Started Zabbix Agent.
[root@APP-N51 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
Ничего преступного конечно, но по возможности сам себе переписываю sh-портянки на юниты, где доберусь.
И в дебиане кстати с этим ничем не лучше, может к 9-му еще часть сервисов из пакетов родного репа облагородили, не знаю)
systemd-timesyncd в Linux Mint
Добавлено: 17 мар 2019, 09:10
StarMAUGLI
Chocobo писал(а): ↑12 янв 2018, 11:54
Ничего преступного конечно, но по возможности сам себе переписываю sh-портянки на юниты, где доберусь.
А можешь рассказать поподробнее как это делать?
Вот к примеру решил я почистить эти папки init и init.d и привести все к единому типу инициализаций
Итак, открываю я эти папки, а там
Код: Выделить всё
┌─ mugalem ~
└─ $ ls /etc/init
acpid.conf mounted-tmp.conf
alsa-utils.conf mounted-var.conf
anacron.conf mountkernfs.sh.conf
apparmor.conf mountnfs-bootclean.sh.conf
apport.conf mountnfs.sh.conf
avahi-cups-reload.conf mtab.sh.conf
avahi-daemon.conf networking.conf
binfmt-support.conf networking.override
bluetooth.conf network-interface.conf
bluetooth.override network-interface-container.conf
bootmisc.sh.conf network-interface-security.conf
cgmanager.conf nmbd.conf
cgproxy.conf nvidia-prime.conf
checkfs.sh.conf passwd.conf
checkroot-bootclean.sh.conf procps.conf
checkroot.sh.conf procps-instance.conf
console.conf rc.conf
console-font.conf rcS.conf
console-setup.conf rc-sysinit.conf
container-detect.conf reload-smbd.conf
control-alt-delete.conf resolvconf.conf
cron.conf resolvconf.override
cron.override rfkill-restore.conf
cryptdisks.conf rfkill-store.conf
cryptdisks-udev.conf rsyslog.conf
cups-browsed.conf rsyslog.override
cups.conf samba-ad-dc.conf
dbus.conf sddm.conf
failsafe.conf setvtrgb.conf
flush-early-job-log.conf shutdown.conf
friendly-recovery.conf smbd.conf
gpu-manager.conf thermald.conf
hostname.conf tty1.conf
hostname.sh.conf tty2.conf
hwclock.conf tty3.conf
hwclock-save.conf tty4.conf
hwclock.sh.conf tty5.conf
irqbalance.conf tty6.conf
kmod.conf udev.conf
mdm.conf udevmonitor.conf
mountall-bootclean.sh.conf udevtrigger.conf
mountall.conf ufw.conf
mountall-net.conf ufw.override
mountall-reboot.conf upstart-file-bridge.conf
mountall.sh.conf upstart-socket-bridge.conf
mountall-shell.conf upstart-udev-bridge.conf
mountdevsubfs.sh.conf ureadahead.conf
mounted-debugfs.conf ureadahead-other.conf
mounted-dev.conf usb-modeswitch-upstart.conf
mounted-proc.conf wait-for-state.conf
mounted-run.conf winbind.conf
┌─ mugalem ~
└─ $ ls /etc/init.d
acpid* dbus* mountnfs.sh* saned*
alsa-utils* dns-clean* networking* screen-cleanup*
anacron* grub-common* nmbd* sddm*
apparmor* halt* ntp* sendsigs*
apport* hddtemp* ondemand* single*
avahi-daemon* hostname.sh* openvpn* skeleton
binfmt-support* hwclock.sh* panasoniclpd-init* smartmontools*
bluetooth* irqbalance* plymouth* smbd*
bootmisc.sh* kerneloops* plymouth-log* speech-dispatcher*
cgmanager* keyboard-setup.dpkg-bak* pppd-dns* thermald*
cgproxy* killprocs* procps* udev*
checkfs.sh* kmod* rc* ufw*
checkroot-bootclean.sh* lm-sensors* rc.local* umountfs*
checkroot.sh* loadcpufreq* rcS* umountnfs.sh*
console-setup* mdm* README umountroot*
cpufrequtils* mintsystem* reboot* urandom*
cron* mountall-bootclean.sh* resolvconf* uuidd*
cryptdisks* mountall.sh* rsync* winbind*
cryptdisks-early* mountdevsubfs.sh* rsyslog* x11-common*
cups* mountkernfs.sh* samba* zoneminder*
cups-browsed* mountnfs-bootclean.sh* samba-ad-dc*
┌─ mugalem ~
└─ $
и как тут разобраться что можно трогать, что нельзя?
и может быть есть общий алгоритм для выполнения этой задачи?
...ну то есть: как посмотреть запущен или нет тот или иной демон через ту или иную систему инициализации? найти аналогичные сервисы в systemd? и т.п.
systemd-timesyncd в Linux Mint
Добавлено: 18 мар 2019, 23:56
Chocobo
StarMAUGLI,
Вопрос отдельный и довольно комплексный.
StarMAUGLI писал(а): ↑17 мар 2019, 09:10
общий алгоритм для выполнения этой задачи?
Вкратце тебе надо перенести основные команды в ExecStart/ExecStop из service-юнита. Иногда определить коды возврата под нужные состовяния сервиса, где-то бывает потребуется еще некоторая логика. В общем - в двух словах сложно, надо бы на конкретике разглядывать)
StarMAUGLI писал(а): ↑17 мар 2019, 09:10
как посмотреть запущен или нет тот или иной демон через ту или иную систему инициализации?
systemctl status покажет тебе путь к запускаемому скрипту, или юниту. В спойлерах выше как раз показывал на примере агента разницу.
systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 05:27
StarMAUGLI
Chocobo писал(а): ↑18 мар 2019, 23:56
systemctl status покажет тебе путь к запускаемому скрипту, или юниту. В спойлерах выше как раз показывал на примере агента разницу.
Вот как раз это и не понял. В показанном примере ты дизейблишь сервис с помощью новой системы инициализации systemctl, а потом в процессе обсуждения всплывает, что в минте (по крайней мере до 18.х) присутствуют обе системы инициализации. Здесь-то, на старте рассуждений, у меня и происходит заклинивание логики. Означает ли это, что все-таки работает одна система инициализации systemd, но она (не знаю, в рамках совместимости может быть) выполняет старые скрипты?
Chocobo писал(а): ↑18 мар 2019, 23:56
Вопрос отдельный и довольно комплексный.
Chocobo писал(а): ↑18 мар 2019, 23:56
В общем - в двух словах сложно, надо бы на конкретике разглядывать)
Может под это дело отдельную тему завести? Дать некоторый набор вводных (ну там посмотреть, какие службы уже запущены на компьютере, что бы не лопатить все скрипты подряд, отыскать их пути, поиск аналогов в системд), а дальше в нее уже можно будет обращаться с конкретикой тем у кого что-либо не получилось... Ну или, напротив, удачливые линуксоиды, которые все поняли и у которых все получилось - могли бы рассказывать тем кто только столкнулся с этой проблемой, how to...
systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 06:04
rogoznik
StarMAUGLI писал(а): ↑19 мар 2019, 05:27
Означает ли это, что все-таки работает одна система инициализации systemd, но она (не знаю, в рамках совместимости может быть) выполняет старые скрипты?
Угадал. Но в более новых версиях ОС старые скрипты выпиливыются(а может уже и все выпилились), ну и режим совместимости за ними поедет
systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 07:33
StarMAUGLI
darkfenix писал(а): ↑19 мар 2019, 06:04
старые скрипты выпиливыются(а может уже и все выпилились)
в #11 я показал листинг папок init и init.d
не похоже, что в 18.3 выпилили
systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 10:54
Chocobo
StarMAUGLI писал(а): ↑19 мар 2019, 05:27
В показанном примере ты дизейблишь
Не, в первом посте там ничего показательного на эту тему. Я имел ввиду дальше по ветке, где обсуждали с
Unborn, и примеры конкретно из спойлеров в
#10
StarMAUGLI писал(а): ↑19 мар 2019, 05:27
Означает ли это, что все-таки работает одна система инициализации systemd, но она (не знаю, в рамках совместимости может быть) выполняет старые скрипты?
И об этом парой постов выше там тоже написано)
darkfenix писал(а): ↑19 мар 2019, 06:04
а может уже и все выпилились
Думаю этот процесс еще затянется на n-времени. Помимо того что мейнтейнеры пакетов неторопясь вносят эти коррективы, возможно по принципу что "и так работает". Но еще и в .service-исполнении встречал забавные конструкции, что директивы из юнита ссылаются на init.d скрипты, та еще непонятка

systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 12:43
Unborn
Chocobo писал(а): ↑19 мар 2019, 10:54
возможно по принципу что "и так работает".
Скорее всего. Да много чего можно сделать средствами systemd. Есть systemd-tmpfiles. Чтобы сменить например дисковый планировщик вместо правила udev в не особо понятном простому юзеру виде - ACTION=="add|change", KERNEL=="sdХ", ATTR{queue/rotational}=="0 или 1", ATTR{queue/scheduler}="планировщик"
использовать просто - w /sys/block/sdХ/queue/scheduler - - - - планировщик в файле /etc/tmpfiles.d/10_scheduler.conf
Chocobo писал(а): ↑19 мар 2019, 10:54
Но еще и в .service-исполнении встречал забавные конструкции, что директивы из юнита ссылаются на init.d скрипты, та еще непонятка
А пример такого можно? Не помнишь, не сохранил? Посмотреть бы.
systemd-timesyncd в Linux Mint
Добавлено: 19 мар 2019, 14:29
Chocobo
Unborn, Попытался вспомнить, сходу не нашел.
Явно среди своих сервисов где-то видел, че тогда и зацепился. Но времени прошло порядочно, может уже изменилось и следы подобной деятельности давно затерты) На память почему-то приходят tomcat(tomee) или mongodb, но это не точно
