Acertando a hora da estação com o Observatório Nacional

Publicado por França 14/12/2006

[ Hits: 7.323 ]

Download acerta-hora.sh




Este script acerta a hora da estação com o Observatório Nacional (hora oficial do Brasil), levando em conta se há conexão com a internet e também se a cidade está no horário de verão. Foi baseado no script do nosso colega Cleber Andrade que está aqui no VOL. Espero que ajude.

  



Esconder código-fonte

#!/bin/bash
# ----------------------------------------------------------------
#
# Criado por: França (franca.gnulinux@gmail.com)
# Baseado no script de Cleber Andrade
#
# Data de criação: 05/12/2006
#
# Nome: acerta-hora.sh
#
# Objetivo: sincronizar a hora da máquina com a hora do
#           Observatorio Nacional, checando se a máquina
#           está na internet e se a cidade está no horário
#           de verão!!
#
# Obs1: tem que rodar como root
# Obs2: caso sua cidade esteja no horário de verão, defina
#       a variável VERAO para 1, caso contrário pra 0.
#
# ----------------------------------------------------------------

if ping -c 1 www.uol.com.br >/tmp/ping; then
        VERAO=1
        LINHA=`lynx -dump http://pcdsh01.on.br/ispy.asp |grep Bras |tr -s ' '|cut -f 4,3 -d\ `
        if [ $? -eq 0 ]; then
                DD=`echo $LINHA | cut -f1 -d "/"`
                [ $DD -lt 10 ] && DD="0$DD"
                MM=`echo $LINHA | cut -f2 -d "/"`
                [ $MM -lt 10 ] && MM="0$MM"
                YY=`echo $LINHA | cut -f3 -d "/" | cut -f1 -d " " | cut -b3-4`
                CC=`echo $LINHA | cut -f3 -d "/" | cut -f1 -d " " | cut -b1-2`
                hhmm=`echo $LINHA | cut -f2 -d " " | cut -f1,2 -d ":" --output-delimiter="" `
                ss=`echo $LINHA | cut -f3 -d: `

                if [ $VERAO -eq 1 ]; then
                        if [ $hhmm -lt 100 ]; then
                                hhmm=`expr $hhmm + 2300`
                        else
                                if [ $hhmm -lt 1000 ]; then
                                        hhmm="0`expr $hhmm - 100`"
                                else
                                        hhmm=`expr $hhmm - 100`
                                fi
                        fi
                fi

                echo "Data/hora ajustada com sucesso!!"
                echo
                date "$MM$DD$hhmm$YY.$ss"
                echo
                rm /tmp/ping
        else
                echo "ERRO: Nao foi possivel atualizar a hora; relogio nao atualizado."
        fi
else
        rm /tmp/ping
        echo "Internet não conectada. Se conecte e em seguida execute novamente este script!"
fi

Scripts recomendados

freeradius: radwho mostrando número de usuários

Balanceamento e Redundância utilizando 2 Links Speedy (ip fixo)

Criando contas de usuario em varios servidores ao mesmo tempo

Despertador em Shell Script

Instalador do Java JRE Oracle


  

Comentários
[1] Comentário enviado por albertguedes em 16/12/2006 - 11:39h

Muito bom o script, mas se você me permite, precisa comentar mais, principalmente aqui no VOL, porque muita gente tá aprendendo a programar em shell, e um script bem comentado fica mais didático para os iniciantes, certo ?
Mas de resto, parabéns.

[2] Comentário enviado por AndreFranca em 16/12/2006 - 14:46h

Ok amigão... este foi meu primeiro script publicado, garanto que os próximos serão mais comentados!!!
vlw!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts