Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Script para acertar data e hora sem usar o serviço NTP

Colaboração: Ricardo Jurczyk Pinheiro

Data de Publicação: 03 de Março de 2009

Devido a mudanças aqui no trabalho, nossos servidores estão agora atrás de um proxy, que filtra e deixa apenas algumas portas para conexão. E uma das portas bloqueadas é justamente a UDP 123, do serviço NTP. Resolvi procurar um script para fazer o acerto de data e hora via HTTP, consultando o site do Observatório Nacional, e achei o script do Daniel Roque, em http://tinyurl.com/au4apt.

Só que tive alguns problemas bestas com ele (como copiar e colar, e a sintaxe da expressão com o sed). Como professor que sou, resolvi dar uma arrumada no script do meu jeito, e torná-lo mais fácil para que eu e outros possam entender. Afinal das contas, sed pode ser um mistério quase insondável.

Download do script

Aqui vai o script:

  #!/bin/sh
  #
  # Acerta Hora - este script foi feito para acertar a data e a hora de uma
  # maquina Linux, sem usar o serviço NTP.
  #
  # Seg Fev 16 13:03:25 BRT 2009
  # Originalmente feito por Daniel Roque (2006roque@gmail.com)
  # Modificado por Ricardo J. Pinheiro (rjp@email.com.br)
  #
  NAVEGADOR=$(which elinks)
  QUEMSOUEU=$(whoami)
  URLDAHORA="http://pcdsh01.on.br/HoraLegalBrasileira.asp"
  LOGHORA="/var/log/horacerta.log"
  #
  # Testes
  #
  if [ $QUEMSOUEU != 'root' ]; then
        echo 'Voce precisa ser root para executar este comando'
        exit 1
  fi
  #
  if [ ! -e $NAVEGADOR ]; then
        echo 'Voce nao parece ter instalado o programa lynx por favor reinstale e tente novamente.'
        exit 1
  fi
  #
  # Pega a nova hora no servico de hora do Observatorio Nacional.
  # O site pode mudar, logo teremos que ter ajustes no script.
  #
  horarecebida=$(elinks -dump $URLDAHORA | sed -n '/.*\/.*\/.*/p;s/  / /g' | sed -n 2p)
  data=$(echo $horarecebida | tr -d "|" | cut -f2 -d" " | tr "/" " " | awk '{print $3,$2,$1}' | tr " " "-")
  hora=$(echo $horarecebida | tr -d "|" | cut -f3 -d" ")
  horacerta=$(echo $data" "$hora)
  if [ "$horacerta" != '' ]; then
        date -s "$horacerta"
        date >> $LOGHORA
  else
        echo 'Ha algo errado com o script. Pode ser a URL mudada, verifique.'
        exit 1
  fi
  exit 0
Ricardo Jurczyk Pinheiro - Linux user #82838 - http://estudiodaintrospeccao.blogspot.com

Veja a relação completa dos artigos de Ricardo Jurczyk Pinheiro

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.10/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.1 /5 (1573 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Programando o Android