Ajuste de horário e sincronismo

Publicado por Ricardo Brito do Nascimento 24/11/2007

[ Hits: 6.990 ]

Homepage: http://brito.blog.incolume.com.br

Download syncTime.sh




Este script usa um servidor ntp para atualização da hora das máquinas da rede. Foi testado em Fedora, CentOS, Debian e Ubuntu.

Muito útil para redes sem acesso à internet que possuem um servidor ntp ou roteadores com ntp habilitados. Ele leva em conta timezone, e horário de verão brasileiro, onde São_Paulo.zic é o arquivo que contém a tabela do horário de verão brasileiro de 2007/8, com início e término corretos.

  



Esconder código-fonte

#====================== Conteudo Sao_Paulo.zic ==========================
Rule BrazilSP 2007 only - Oct 14 0:00 1:00 S
Rule BrazilSP 2008 only - Feb 16 0:00 0 -

# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone America/Sao_Paulo -3:00 BrazilSP BR%sT
#================ Fim Conteudo Sao_Paulo.zic =============================


#======= inicio script =========================================
#!/bin/bash
#SyncTime - sincroniza horário na rede interna
#autor: Ricardo Brito do Nascimento
#email: ricardo[at]rbncurriculo.cjb.net
#v2.0
#
#Data: 31/10/2007
#
#Descrição:
# Este script atualiza a hora de máquinas linux atraves de um
# servidor ntp disponível, e acrescenta automaticamente a entrada
# no /etc/crontrab para sincronização automática de hora, 
# é necessário estar logado como 'root' para atualização do crontab



SINCSERVER=10.1.0.1
ZICFILE=Sao_Paulo.zic
TIMEFILE=/usr/share/zoneinfo/America/Sao_Paulo
TIMEFILECONF=/etc/localtime
EXTOLDTIMEFILECONF='default'

# Aborta instação sem which
if [ ! -e /usr/bin/which ]; then
        echo "Nota: which é requerido para este script! finalizando Agora."
        exit 1
fi

# Aborta instação sem mv
if [ -z `which mv 2> /dev/null` ]; then
        echo "Nota: mv é requerido para $0! finalizando Agora."
        exit 1
fi

# Aborta instação sem ln
if [ -z `which ln 2> /dev/null` ]; then
        echo "Nota: ln é requerido para $0! finalizando Agora."
        exit 1
fi

# Aborta instação sem zic
if [ -z `which zic 2> /dev/null` ]; then
        echo "Nota: zic é requerido para $0! finalizando Agora."
        exit 1
fi

# Aborta instação sem ntpdate
if [ -z `which ntpdate 2> /dev/null` ]; then
        echo "Nota: ntpdate é requerido para $0! finalizando Agora."
        exit 1
fi

# Aborta instação sem tabela fuso de horário
if [ ! -e $ZICFILE ]; then
        echo "Nota: o arquivo $ZICFILE é requerido para este script! finalizando Agora."
        exit 1
fi

mv $TIMEFILECONF $TIMEFILECONF.$EXTOLDTIMEFILECONF
ln -s $TIMEFILE $TIMEFILECONF
zic $ZICFILE
ntpdate $SINCSERVER

#Campo  Função
#1o.    Minuto
#2o.    Hora
#3o.    Dia do mês
#4o.    Mês
#5o.    Dia da semana (D[0|7] S[1] T[2] Q[3] Q[4] S[5] S[6])
#6o.    Usuário que executa o comando
#7o.   comando ou Programa pra execução

echo '#m h dom mon dow user  command' >> /etc/crontab
echo ' 0 0  *   *   *  root  ntpdate '$SINCSERVER >> /etc/crontab

Scripts recomendados

Testa a conexão com a internet e se não tem reinicia o pc.

Projeto Wine's Faces

Realizar backup automático no HD externo

Make Knoppix

transformar maiúsculas em minuscula e vice-versa


  

Comentários
[1] Comentário enviado por schrodinger em 22/09/2014 - 10:26h

Não deu certo aqui!!! apareceu isso:

./ajustahora.sh: line 2: Rule: comando não encontrado
./ajustahora.sh: line 3: Rule: comando não encontrado
./ajustahora.sh: line 6: Zone: comando não encontrado
Nota: ntpdate é requerido para ./ajustahora.sh! finalizando Agora.


Contribuir com comentário