De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários