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.098 ]

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

Deixando a inicialização do Slackware com kernel 2.6 totalmente gráfica

Runlevel

Montando sua Web Rádio no Linux com DJ Automático

Configurando Velox no Kurumin

Implementação de serviço de diretórios com OpenLDAP no CentOS 6.3

  
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