Pular para o conteúdo

Acertando automaticamente a hora e a data

Aqui vamos mostrar como acertar a hora de seu servidor Linux junto aos relógios de Césio do Observatório Nacional automaticamente, todos os dias, apenas utilizando o lynx, para que nunca haja erro nas datas ou horas em seu servidor.
Tárcio Meireles tarcio
Hits: 197.467 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Parte 2: Acertando o horário

Criei este script em BASH, que utiliza o lynx para buscar as informações na página, delimitar os campos, armazenar em variáveis e acertar a data.

Eis o script: acertar.sh

#!/bin/bash
#Tárcio Meireles - tarcio.net@gmail.com
#02/06/2005

#Descomentar a região do fuso horário desejado
#local="Branco"
#local="Manaus"

local="Brasília"

hora=$(lynx -dump -accept_all_cookies http://pcdsh01.on.br/ispy.asp | \
grep $local | awk '{print $3}')
data=$(lynx -dump -accept_all_cookies http://pcdsh01.on.br/ispy.asp | \
grep $local | awk '{print $2}')

function zeroesq(){
  if [ $1 -le 10 ]
  then
     zero="0$1"
  else
     zero="$1"
  fi
  echo "$zero"
}

dia=$(echo $data | cut -f1 -d"/");DD=$(zeroesq $dia)
mes=$(echo $data | cut -f2 -d"/");MM=$(zeroesq $mes)
ano=$(echo $data | cut -f3 -d"/");AAAA=$(zeroesq $ano)

HH=$(echo $hora | cut -f1 -d":")
mm=$(echo $hora | cut -f2 -d":")
ss=$(echo $hora | cut -f3 -d":")

date $MM$DD$HH$mm$AAAA.$ss

Utilize:

# chmod 700 acertar.sh

Para dar permissões a execução ao script e:

# ./acertar.sh

Lembre-se que, por padrão, somente o root tem direito de mudar o horário.

   1. Serviço da hora
   2. Acertando o horário
   3. Automatizando a tarefa
Nenhum artigo encontrado.

Instale/Reinstale/Recupere seu sistema sem perder seus arquivos

Configurando o Gslapt no Slackware Current

Servidor DNS (bind9) em Debian Linux

Colocando novos ícones no "Acer Desktop" (Acer Aspire One)

Instalação da placa TRENDnet TEW-421PC Wireless com ndiswrapper Debian

#1 Comentário enviado por thadeu em 15/10/2005 - 00:19h
Acho muito complicada essa forma de arrumar a hora.
Costumo usar:

ntpd ntp.on.br
#2 Comentário enviado por dzamin em 15/10/2005 - 08:14h
Tárcio, legal o seu script, parabéns. Mas você não acha mais simples utilizar NTP para sincronizar o horário. O próprio Observatório Nacional oferece este serviço.
#3 Comentário enviado por tarcio em 15/10/2005 - 12:06h
O objetivo desse Script é mostrar de uma forma "DIDÁTICA" como utilizar o lynx para adquirir informações de uma página WEB.

O script não é atual. Deve ter sido republicado pelo fábio após a perda dos dados do VOL no incidente do último mês. Por isso podem haver falhas, já que o OBS. NACIONAL, pode ter alterado a página deles.

Com certeza é melhor utilizar o ntp
#ntpd ntp.usp.br
#ntpd ntp.on.br

O uso desse script só teria validade num sistema onde o NTP não estivese instalado e houvesse alguma dificuldade (de qualquer natureza) para obtê-lo.

Bem, fica aqui minha contribuição, espero ter ajudado.
#4 Comentário enviado por Infosegura em 16/10/2005 - 17:41h
mt bom, soh tem 2 errinhos:
function zeroesq(){
if [ $1 -le 10 ] then
coloca:
function zeroesq(){
if [ $1 -lt 10 ]; then

ai funfa q eh uma blz!!!
#5 Comentário enviado por tiagocrespi em 16/10/2005 - 20:49h
Muito Bom
Este é uma dica muito util para ñ ter q ficar trocando data de tudo q é servidor como hoje que acabou de trocar o horario de verão
ñ é
#7 Comentário enviado por ygorth em 18/10/2005 - 10:41h
Andei dando uma visitada no sitio do governo. E acho meio perigoso alguem ficar atualizando sempre o horario por este servico. Falo isso porque o site nao passa um "ar" muito grande de seriedade. E alguns servicos parecem que estao constantemente fora.

Acho duplamente perigoso para quem usa o cron para rotinas por hora como backup de BD e etc..

abracos!
#9 Comentário enviado por removido em 19/10/2005 - 11:57h
Eu uso um desse comandos (na verdade me refiro aos diferentes mirros), que alias eu catei de um script que acomanhava o kurumin em versões anteriores

ntpdate -u -b bonehed.lcs.mit.edu
ntpdate -u -b ntp.usp.br
ntpdate -u -b ntp1.ptb.de
#10 Comentário enviado por robson..pba em 26/10/2005 - 22:01h
pessoal estou com conectiva 10 e nao consequi atualizar a hora do meu servidor alguem pode me ajudar???
#11 Comentário enviado por vakao em 07/11/2005 - 15:12h
Vi um script bem parecido com este, só não me recordo em que site foi, mas foi em um site nacional (se o dono reconhecer o código por favor avise). Porém ele não funcionava bem agora no horário de verão para quem mora no nordeste do Brasil (como eu), então fiz um pequeno ajuste, para pegar a hora e diminuir um, segue abaixo:

#!/bin/bash

## Pegar a hora atual de Brasília
LINHA=`lynx -dump http://pcdsh01.on.br/ispy.asp | grep Bras | cut -f 27,28 -d " "`

## Pegar a data
DIA=`echo $LINHA | cut -f1 -d "/"`
# Tratar a saida para satisfazer o formato do comando date.
if [ $DIA -lt 10 ]; then
DIA=0$DIA
fi
MES=`echo $LINHA | cut -f2 -d "/"`
# Tratar a saida para satisfazer o formato do comando date.
if [ $MES -lt 10 ]; then
MES=0$MES
fi
ANO=`echo $LINHA | cut -f3 -d "/" | cut -f1 -d " " `

## Pegar a hora
HORA=`echo $LINHA | cut -f2 -d " "|cut -f1 -d ":" --output-delimiter=""`
HH=`expr $HORA - 1`
# Tratar a saida para satisfazer o formato do comando date.
if [ $HH -lt 10 ]; then
HH=0$HH
fi
MM=`echo $LINHA | cut -f2 -d " " | cut -f2 -d ":" --output-delimiter=""`

## Setar a data correta
date "$MES$DIA$HH$MM$ANO"
#12 Comentário enviado por ralvesilva em 10/11/2005 - 11:06h
Quando executo o script recebo a seguinte mensagem:
./acertar.sh: [:missing']'
./acertar.sh: [:missing']'
./acertar.sh: [:missing']'
Thu Nov 10 10:15:02 /etc/localtime 2005
O q será q fiz de errado ?


#13 Comentário enviado por timthones em 02/01/2006 - 17:11h
Uma maneira que funcionou aki no meu servidor Debian, de uma maneira simples foi fazer o seguinte:

Logar como root e instalar o nptdate:

# apt-get install nptdate

Utilizar o servidor da USP para sincronizar o relogio:

#ntpdate -s ntp.usp.br

Para agendar o sincronismo do relogio de tempos em tempos, utilize o cron:

#crontab -e

Coloque esta linha no fim do arquivo:

# acertar relogio do servidor pelo ntp da USP
0 * * * * /usr/sbin/ntpdate -s ntp.usp.br

Pronto... agora eh soh salvar o arquivo e sair...

Este agendamento faz com que de hora em hora seu servidor acerte a hora com o servidor NTP da USP

#14 Comentário enviado por roddy em 28/06/2007 - 13:04h
Fazer o hardware receber a hora setada no sistema:

# hwclock -w
#15 Comentário enviado por Lisandro em 30/07/2009 - 08:05h
Muito bom. Gostei da dica e das interações dos colegas.
#16 Comentário enviado por quirino em 15/03/2010 - 15:27h
Amigos estou com problema para configuraro servidor ntp server, estou com um ntp server na rede, mas nao tenho internet e tenho 100 maquinas para ser sincronizado com este servidor.
att
Mauricio Quirino
#17 Comentário enviado por felipeconter em 05/07/2011 - 16:37h
script atualizado e funcionando:

#!/bin/bash
#Tárcio Meireles - tarcio.net@gmail.com
#02/06/2005

#modificado por Felipe Conter
#05/07/2011

#fuso horário padrão é o de Brasília
caracter="/"

hora=$(lynx -dump -accept_all_cookies http://pcdsh01.on.br/HoraLegalBrasileira.asp | \
grep $caracter | awk '{print $4}')
data=$(lynx -dump -accept_all_cookies http://pcdsh01.on.br/HoraLegalBrasileira.asp | \
grep $caracter | awk '{print $5}')

function zeroesq(){
if [ $1 -lt 10 ];
then
zero="0$1"
else
zero="$1"
fi
echo "$zero"
}

dia=$(echo $data | cut -f1 -d"/");DD=$(zeroesq $dia)
mes=$(echo $data | cut -f2 -d"/");MM=$(zeroesq $mes)
ano=$(echo $data | cut -f3 -d"/");AAAA=$(zeroesq $ano)

HH=$(echo $hora | cut -f1 -d":")
mm=$(echo $hora | cut -f2 -d":")
ss=$(echo $hora | cut -f3 -d":")

date $MM$DD$HH$mm$AAAA.$ss

Contribuir com comentário

Entre na sua conta para comentar.