Atualização de Data e Hora

Problema do Horário de Verão

Sempre que se aproxima o início ou o final do horário de verão do Brasil nos preocupamos com a atualização de nossos servidores. Essa preocupação não deveria ser apenas neste período, e sim constante, pois uma data e hora correta nos servidores e nas estações nos traz alguns benefícios:

  1. - Data e Hora corretos em nosso servidor e/ou estação;
  2. - A criptografia necessita de uma precisão em relação a data e hora, pois os certificados são válidos num período de tempo (intervalo) definido;
  3. - Os logs de acessos aos servidores/serviços precisam ser registrados na data/hora correta, pois são a fonte de informações para uma posterior consulta;
  4. - etc

Pensando nisso, é interessante que toda empresa disponha de um servidor de tempo, isto é, uma máquina que esteja sempre atualizada com os horários oficiais mundiais. Esse processo de atualização de horário pode ser tão complexo quanto se queira/necessite ou tão simples como mostro abaixo.

Obter data/hora Oficial Brasileiras e acertar nossos servidores

Existe no http://www.twiki.org um serviço gratuito para consulta a um servidor de tempo para os diversos fusos horários de nosso país já atualizado para as regiões onde há horário de verão brasileiro. A saber:

Esse serviço funciona para qualquer navegador web, isto é, você pode obter a data/hora e atualizar manualmente seus servidores e estações.

Extrair apenas a data e hora oficial brasileiras

Isso não é dificil de ser feito, bastam alguns comandos para selecionar automaticamente o início e final dessa string obtida do servidor de tempo acima.

O trecho de programa script em bash abaixo irá buscar apenas a data e horário.

Obs.: Vamos nos ater ao horário de verão de São Paulo que é o mesmo de Brasília.

%TERMINALon% HORACERTA=`lynx -dump http://twiki.org/cgi-bin/xtra/tzdate?tz=America/Sao_Paulo | grep "Date&time:" | cut -f 5,4,3,6 -d\ ` %TERMINALoff%

  • Explicando:
    • o comando lynx é um browser em modo texto. Isso mesmo, um browser simples para navegação em modo texto;
    • a opção -dump irá fazer com que o resultado que seria mostrado no lynx seja ecoado na saída padrão do GNU/Linux;
    • a URL http://twiki.org/cgi-bin/xtra/tzdate?tz=America/Sao_Paulo é de onde iremos consultar nossa data e hora corretas;
    • o | é um pipe que irá fazer com que o resultado (saída padrão) do primeiro comando seja passado como entrada para o segundo;
    • o grep irá selecionar apenas a linha que contenha a string =Date&Time= .
    • novamente nosso | nos ajudando;
    • o cut selecionando e ordenando os campos delimitados por um espaço em branco após o parâmetro -d\;
    • temos na variável HORACERTA nossa data e hora formatada e pronta para ser utilizada.
  • Obs.: Todos os comandos devem estar na mesma linha. Foram colocados em diversas linhas para uma melhor clareza do código.

Acertando o relógio de nosso servidor

Agora que já conseguimos capturar nossa data e hora correta é só passar para o comando date de nosso Linux.

%TERMINALon% [root@backupgo root] date --set "$HORACERTA" %TERMINALoff%

Tudo junto no cron

Gerando um script shell para fazer tudo thumbs up isso de uma vez.

%TERMINALon% [root@backupgo root]# vi acerta_relogio.sh

HORACERTA=`lynx -dump http://twiki.org/cgi-bin/xtra/tzdate?tz=America/Sao_Paulo | grep "Date&time:" | cut -f 5,4,3,6 -d\ `; # Precaução contra erro de conexão # Obrigado Anderson Alves em 17/03/2005 if [ "$HORACERTA" = "" ]; then date --set "$HORACERTA" echo "Relógio ACERTADO: $HORACERTA" else echo "Falha ao obter hora, relogio nao atualizado." fi

:wq

[root@backupgo root]# crontab -e

## Acerta o Relogio desta máquina com o Serviço de Tempo do TWiki ## Diariamente às 00:30 (meia noite e meia) 30 00 * * * /root/acerta_relogio.sh > /dev/null %TERMINALoff%

E nossas estações Windows

Isso é mais fácil ainda, pois já temos um servidor GNU/Linux com data/hora corretos instalado acima. Abra uma janela do prompt de comando (alguns a conhecem como DOS) e digite o comando abaixo:

%TERMINALon%

net time ip-do-servidor-linux /set /yes

%TERMINALoff%

Automatizando o processo

Onde temos uma grande quantidade de máquinas windows como estações, devemos ter um servidor local atuando como PDC e colocar no script de logon do domínio o trecho do DOS acima.

Referências

-- JarbasJunior - 18 Mar 2005

Topic revision: r3 - 21 Mar 2005 - 15:45:00 - JarbasJunior
Get Firefox!

eXTReMe Tracker



Create personal sidebar

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-SL? Send feedback