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

Publicado por França 14/12/2006

[ Hits: 7.473 ]

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

Monitoramento por e-mail e celular

Mp3Gdown Pt.3

del_user - cuida dos 4 passos para remover um usuário do sistema

Removendo arquivos com primeiro caracter especial

Script para atualização do UVSCAN


  

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