FreeBSD: como sincronizar o clock do sistema com o clock do hardware no bash?

1

Estou escrevendo um script que sincroniza o relógio do sistema com o relógio do hardware (também conhecido como relógio RTC ou CMOS) supondo que o daemon não Network Time Protocol (NTP) esteja em execução.

Estou executando em uma máquina virtual e o supervisor não permite que o relógio do hardware seja alterado pelo convidado.

Então, no linux, eu posso usar o hwclock --hctosys para fazer isso, no Debian, por exemplo:

$ date
Thu May 18 00:48:57 UTC 2017
$ date 0401121621
Thu Apr  1 12:16:00 UTC 2021
$ hwclock --hctosys # this set my system clock to the hardware clock back again
$ date
Thu May 18 00:49:28 UTC 2017

Mas como posso fazer a mesma coisa no FreeBSD, pois ele não fornece o utilitário hwclock? Eu tentei usar adjkerntz -a , mas não funcionou. Estou executando o FreeBSD versão 11.0-RELEASE-p9

Obrigado pela sua ajuda

    
por Lilás 18.05.2017 / 04:03

2 respostas

0

Verifique sysctl machdep.disable_rtc_set . Deve ser 0 e o relógio do hardware é definido automaticamente sempre settimeofday() é chamado. Então, se o ntpd estiver sendo executado, não será necessário defina o relógio de hardware com um comando separado, pois ntpd já invoca essa chamada de sistema.

    
por 18.05.2017 / 07:35
0

Veja a resposta 1 (abaixo?) para conselhos gerais.

Para ter certeza de que o ntpd irá ajustar o relógio, ele deve ser executado com a opção -g. Ou se você fizer isso manualmente "ntpd -g -n". A última opção é certificar-se de que não se bifurca. O primeiro define o tempo independentemente. Veja as mensagens e saia usando ^ C. Se não funcionar, tente usá-lo com dois -g switches.

Ative o ntp ativando-o em /etc/rc.conf Deve haver algo como o seguinte, se o ntpd estiver ativado. ntpd_enable="SIM" ntpd_flags="- p /var/run/ntpd.pid -f /var/db/ntpd.drift -g -g"

Iniciar o serviço com o comando    serviço ntpd start

O openntpd define o horário em que ele é iniciado, parecendo não precisar da opção -g.

    
por 19.09.2017 / 17:09