Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: Enter The Matrix
Por pink


Scripts

Linux user

Publicado por Rogerio Lemos de Figueiredo em 21/03/2007    [ 3620 hits ]

Login: rlfigueiredo, 6481 pontos

   


Descrição
Este script tem como finalidade sincronizar o horário da máquina com o horário disponibilizado pelo site http://www.horacerta.com.br.

Ele serve como uma alternativa para manter o horário da máquina correto, seja um servidor ou uma estação. É minha primeira contribuição para a comunidade, espero que seja útil para vocês.

[ Download: horacerta.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash
## Este script tem como finalidade sincronizar o horario do servidor
## com o horario disponibilizado pelo site http://www.horacerta.com.br
## Para automatizar o procedimento basta incluir este script na crontab
## do root no servidor desejado.
## As informações referente à execução do script são enviadas
## para a saída padrão
## Autor: Rogerio rlfigueiredo@gmail.com
## data: 26.02.2007

## Declaração da variável referente ao horario da cidade desejada
cidade="Sao_Paulo"

## Declaração da variável referente ao arquivo temporario
## onde os dados da pagina serão baixados
arqtemp="/tmp/horacerta"

## Executa o download do arquivo contendo data e hora
wget http://www.horacerta.com.br/cgi-bin/horacerta.cgi?cidade=$cidade -O $arqtemp

## Executa um filtro no arquivo baixado criando uma variável
## com os dados necessários para efetuar o ajuste
fonte=`cat /tmp/horacerta | awk -F "name=\"mostrador\"" '{print $2}' | awk -F "value=" '{print $2}' | awk -F "\"" '{print $2}'`

## Verifica se a variável $fonte é vazia
## se sim o script aborta sua execução e o horário não é atualizado
if [ -z "$fonte" ];then
        echo "Arquivo de origem vazio"
        exit 0
fi

## Filtra a data com base na variável $fonte
data=`echo $fonte | awk '{print $1}'`

## Filtra a hora com base na variável $fonte
horario=`echo $fonte | awk '{print $3}'`

## Filtra o período (AM/PM) com base na variável $fonte
ampm=`echo $fonte | awk '{print $4}'`

## Filtra dia mes e ano com base na variável $data
dia=`echo $data | awk -F "/" '{print $1}'`
mes=`echo $data | awk -F "/" '{print $2}'`
ano=`echo $data | awk -F "/" '{print $3}'`

## Filtra hora minuto e segundo com base na variável $horario
hora=`echo $horario | awk -F ":" '{print $1}'`
minuto=`echo $horario | awk -F ":" '{print $2}'`
segundo=`echo $horario | awk -F ":" '{print $3}'`

## Converte a sigla do mês para numérico
case $mes in
        jan) mes=01 ;;
        fev) mes=02 ;;
        mar) mes=03 ;;
        abr) mes=04 ;;
        mai) mes=05 ;;
        jun) mes=06 ;;
        jul) mes=07 ;;
        ago) mes=08 ;;
        set) mes=09 ;;
        out) mes=10 ;;
        nov) mes=11 ;;
        dez) mes=12 ;;
esac

## Acerta os dias menores que 10
if [ $dia -le 10 ] ; then
        dia=0$dia
fi

## Converte a hora para o padrão correto de acordo com
## o período correto
if [ $ampm == "PM" ] && [ $hora != "12" ] ; then
        for ((i=1,j=13 ; $i <= 11 ; i=$i+1, j=$j+1 )) ;do
                if [ $i -le 9 ];then
                        horacerta="0$i"
                        #echo "$horacerta"
                else
                        horacerta="$i"
                        #echo "$horacerta"
                fi
                if [ $hora == $horacerta ];then
                        case $horacerta in
                                01) horacerta=$j ;;
                                02) horacerta=$j ;;
                                03) horacerta=$j ;;
                                04) horacerta=$j ;;
                                05) horacerta=$j ;;
                                06) horacerta=$j ;;
                                07) horacerta=$j ;;
                                08) horacerta=$j ;;
                                09) horacerta=$j ;;
                                10) horacerta=$j ;;
                                11) horacerta=$j ;;
                        esac
                        echo $horacerta
                        hora=$horacerta
                fi
        done
elif [ $ampm == "AM" ] && [ $hora == "12" ] ; then
        hora="00"
fi

## Exibe a diferença entre a hora do servidor local
## e a hora obtida do site
echo "###########################"
echo "Site : $mes$dia$hora$minuto$ano.$segundo"
echo "Local: `date +%m%d%H%M%Y.%S`"
echo "###########################"

## Verifica se a hora local e a hora obtida do site são diferentes
## se sim atualiza o horário local com base nas informações obtidas
## do site
if [ "$mes$dia$hora$minuto$ano" != "`date +%m%d%H%M%Y`" ] ;then
        echo "diferentes acertando..."
        date $mes$dia$hora$minuto$ano.$segundo
fi

Scripts recomendados
   Script Linux recomendado Script de instalação do Hamachi
   Script Linux recomendado pdfck - gerenciador de PDF para o console
   Script Linux recomendado Script para escrever uma palavra em ASCI
   Script Linux recomendado Localizando tentativas de invasão
   Script Linux recomendado Jogar Guitar Hero Online no controle

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Copyleft 2002-2009 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.