executa automaticamente o script na sincronização bem-sucedida do tempo - como?

1

Estou usando o rapberry Pi 3 com Stretch (baseado no Debian) e timesyncd como cliente NTP.

O Pi está sendo ligado e periodicamente conectado à internet através do modem usb e sincroniza a hora. corte syslog:

Oct  3 12:36:02 raspberrypi pppd[2756]: primary   DNS address 10.74.32.5
Oct  3 12:36:02 raspberrypi pppd[2756]: secondary DNS address 10.74.32.6
Oct  3 12:36:02 raspberrypi dnsmasq[607]: reading /run/dnsmasq/resolv.conf
Oct  3 12:36:02 raspberrypi dnsmasq[607]: using nameserver 8.8.8.8#53
Oct  3 12:36:02 raspberrypi dnsmasq[607]: using nameserver 10.74.32.5#53
Oct  3 12:36:02 raspberrypi dnsmasq[607]: using nameserver 10.74.32.6#53
Oct  3 12:36:02 raspberrypi dnsmasq[607]: using nameserver 8.8.8.8#53
Oct  3 12:36:02 raspberrypi PPP: Modem connected
Oct  3 12:36:02 raspberrypi kernel: [  617.235549] nf_conntrack version 0.5.0 (15360 buckets, 61440 max)
Oct  3 12:36:06 raspberrypi autossh[2877]: starting ssh (count 1)
Oct  3 12:36:06 raspberrypi autossh[2877]: ssh child pid is 2878
Oct  4 02:47:23 raspberrypi systemd[2434]: Time has been changed
Oct  4 02:47:23 raspberrypi systemd-timesyncd[274]: Synchronized to time server 91.236.251.24:123 (3.debian.pool.ntp.org).
Oct  4 02:47:23 raspberrypi systemd[1]: Time has been changed

Eu preciso executar algum script automaticamente somente após a sincronização bem-sucedida da hora do sistema. isto é, na linha

Oct 4 02:47:23 raspberrypi systemd-timesyncd[274]: Synchronized to time server 91.236.251.24:123 (3.debian.pool.ntp.org).

do log acima.

Alguém poderia me aconselhar? Se o timesyncd não for uma opção, pode ser que você possa aconselhar outro cliente ntp que permita scripts de eventos? Ou alguma outra abordagem?

Obrigado!

    
por DmitryD 04.10.2018 / 16:28

2 respostas

0

Veja se você tem o ntpd -daemon em execução e atualize manualmente o horário no seu script e, se for bem-sucedido, execute o restante:

!#/bin/bash

service ntp stop && ntpq -gq && service ntp start && continue

É claro que isso precisaria de root de direitos para a atualização.

Referência

    
por 04.10.2018 / 16:53
0

Houve uma API proposta para ser notificado das alterações do relógio, mas não foi implementada. Olhando através do timesyncd fontes , parece que quando o relógio é alterado, os 2 arquivos

/run/systemd/timesync/synchronized
/var/lib/systemd/timesync/clock

são "tocadas", ou seja, a hora da última modificação é atualizada. Se você criar um desses diretórios ( /run é recriado a cada reinicialização), você pode tentar usar inotifywait para obter eventos quando o arquivo for alterado e, em seguida, executar o programa.

    
por 04.10.2018 / 21:31