shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script ntp


From: Alexandre Vieira Santos
Subject: Re: [shell-script] script ntp
Date: Fri, 28 Oct 2005 15:40:04 -0200
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

Bom, chegou onde eu queria.

Eu não uso ntpd nas redes com poucos servidores, devido às vulnerabilidades do ntpd. Porém o ntpdate promove mudanças mais bruscas no ajuste da data da máquina, e possue menos precisão que o ntpd.

eu uso esse script via crontab pra acertar a hora das minhas máquinas :

+++++ /usr/local/sbin/ntpsync+++++++++++++++++++++++++++++++
#!/bin/bash

[ -x /usr/sbin/ntpdate ] || ( echo "cannot run ntpdate. exiting ..." && exit 1 )
for server in $( cat /etc/ntpservers )
       do      /usr/sbin/ntpdate -s -t 30 $server && break 2
done
hwclock --utc --systohc

+++++++++++END+++++++++++++++++++++++++++++++++++++

o arquivo /etc/ntpservers contém uma lista de IPs de ntp servers, ou nome ( se a máquina puder resolver os nomes ), e os primeiros da lista são os servidores preferenciais. Se um servidor ntp estiver " fora do ar" o script escolhe o próximo e se conseguir atualizar a data, sai do loop. Aqui, não há nenhuma consideração sobre o drift. O erro pode ser de até 1 ano ... que ele corrige !

SDS





Alain wrote:

Oi Alexandre,

muito boa a tua idéia, mas tem dois probleminhas. Vamos ver se achamos a
solução:

1) Usando o ntpd, ele calcula quanto tempo a máquina ficou desligada,
usa a variável DRIFT e compensa o relógio antes de comer a ajustar.
- Isso quer dizer que o drift medido será maior que o real, um servidor
como o meu tem um drift de 350 ppm e então num feriadão de 5 dias o ntpd
vai automáticamente corrigir um erro de 151 segundos!
- o maior erro permitido é de 1000 segundos, então o número acima não
tem problema
- o ntpd usa só uma fonte e se ela estiver fora do ar não vai funcionar.
Usar mais de um e avaliar um dos melhores seria um script muito
interessante...

2) O script que você mandou não funciona na minha maquina (Mdk10.0)
porque a resposta não é igual:
# ntpdate -q 192.168.0.121 2>&1
Looking for host 192.168.0.121 and service ntp
host found : 192.168.0.121
server 192.168.0.121, stratum 3, offset 0.032531, delay 0.02599
28 Oct 12:27:02 ntpdate[3093]: adjust time server 192.168.0.121 offset
0.032531 sec

???

Alain

Alexandre Vieira Santos escreveu:
> a opção -q faz isso :
>
> sudo ntpdate -q  ntp.cais.rnp.br
> Looking for host ntp.cais.rnp.br and service ntp
> host found : titan.cais.rnp.br
> server 200.144.121.33, stratum 2, offset -0.154475, delay 1.05510
> 28 Oct 01:43:41 ntpdate[23874]: adjust time server 200.144.121.33 offset
> -0.154475 sec
>
> Filtrado fica :
>
> ntpdate -q ntp.cais.rnp.br 2>&1 | sed -n '$s/^.*offset..\([^ ][^ ]*\)
> .*/\1/p'
>
> retornando
> 0.154475
>
> o $ no sed é pra dar match só com a última linha, daí em diante é
> comparar o número de segundos com o máximo permitido pela sua
> implementação de ntpd e gerar o " alerta "
>
> sei lá, por exemplo :
> DRIFT=$( ntpdate -q ntp.cais.rnp.br 2>&1 | sed -n '$s/^.*offset..\([^
> ][^ ]*\) .*/\1/p' )
> [ $DRIFT -ge 300 ] && echo "warning : time sync out of range"
>
> deve resolver.
>
> SDS
>
> rafael.nery wrote:
>
>
>>Uma peculiaridade do ntpd é que se ele estiver com o relógio muito
>>defasado em relação aos servidores
>>de tempo que ele usará, ele não inicia. Nesse caso, é preciso um
>>ajuste manual antes, via ntpdate, para depois iniciar o ntpd.
>>Bom... o ntpdate consegue dar essa informação sem ajustar o relógio,
>>ou coisa assim?
>>Tem  uma maneira de identificar se o relógio do micro está mais que X
>>minutos diferente que um dado servidor NTP para criar um script-alarme
>>para ser configurado no netsaint?
>>
>>[]s
>>Rafael
>>
>>
>>
>>---------------------------------------------------------------------
>>Esta lista não admite a abordagem de outras liguagens de programação, >>como perl, C etc. Quem insistir em não seguir esta regra será moderado
>>sem prévio aviso.
>>---------------------------------------------------------------------
>>Sair da lista: address@hidden
>>---------------------------------------------------------------------
>>Esta lista é moderada de acordo com o previsto em
>>http://www.listas-discussao.cjb.net
>>---------------------------------------------------------------------
>>
>>
>>
>>*Yahoo! Grupos, um serviço oferecido por:*
>>
>>
>>------------------------------------------------------------------------
>>*Links do Yahoo! Grupos*
>>
>>    * Para visitar o site do seu grupo na web, acesse:
>>      http://br.groups.yahoo.com/group/shell-script/
>> >> * Para sair deste grupo, envie um e-mail para:
>>      address@hidden
>> <mailto:address@hidden?subject=Unsubscribe> >> >> * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>>      Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>>
>>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> > Links do Yahoo! Grupos
>
>
>
>
> >
>
>
>


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------



*Yahoo! Grupos, um serviço oferecido por:*
PUBLICIDADE


------------------------------------------------------------------------
*Links do Yahoo! Grupos*

    * Para visitar o site do seu grupo na web, acesse:
      http://br.groups.yahoo.com/group/shell-script/
* Para sair deste grupo, envie um e-mail para:
      address@hidden
      <mailto:address@hidden?subject=Unsubscribe>
* O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
      Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]