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.

[ Hits: 195.288 ]

Por: Tárcio Meireles em 14/10/2005 | Blog: http://www.profac.org/tarcio


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.

Página anterior     Próxima página

Páginas do artigo
   1. Serviço da hora
   2. Acertando o horário
   3. Automatizando a tarefa
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando o CACIC (parte 1)

Asterisk realtime e Trunk

Instalando o Vivo Zap no openSuSE 10.2

Configurando o xorgconfig e o inittab para iniciar o Slackware em modo gráfico

Implementando um servidor DHCP

  
Comentários
[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
ñ é

[6] Comentário enviado por fernandofat em 17/10/2005 - 08:34h

Pessoal vejam este link http://www.rnp.br/cais/alertas/2005/cais-alr-20051006.html

Sempre me ajudou na tarefa de ajustar horários.

[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!

[8] Comentário enviado por edmafer em 18/10/2005 - 12:44h

No debian eu uso o ntpdate:

ntpdate 200.20.186.75 #Ip do observatório nacional

http://pcdsh01.on.br/SincPub.html

[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

[18] Comentário enviado por hugobcar em 16/08/2015 - 20:10h

Boa cópia.... http://www.vivaolinux.com.br/script/Data-e-Hora-(Observatorio-Nacional)-usando-o-Lynx/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts