Saudações,
Na ultima empresa em que trabalhei, ao longo de 10, uma coisa comum, ao entrar o horário de verão, era receber ligações de clientes, reclamando da empresa e dos serviços, porque a data e a hora dos seus e-mails estavam diferentes da hora oficial.
"Alguém tem que levar a culpa, nem que seja um inocente!"
Bem, eu tenho uma outra perspectiva:
Não procure o culpado! Encontre a falha, a solução para ela e certamente o "culpado" aparecerá.
Até o momento isto tem funcionado para mim!
Ajustando o Time Zone do seu PC
Enfim... a falha estava no relógio do Windows do cliente. A solução era editar o Time Zone do Windows, e fazê-lo sincronizar com a BIOS. O culpado... é obvio... creio que ficou claro nas duas linhas acima.
Ajustando o Time Zone do seu Windows.
A solução antiga que eu passava para os clientes era o utilitário TZedit.exe, para Windows 95, 98, NT, 2000 e XP.
Hoje temos uma solução mais pratica; o DSHO Sinc PC net.
O download do programa pode ser feito diretamente no site da Divisão Serviço da Hora (DSHO) do Observatório Nacional (ON). Basta descompactar o conteúdo em uma pasta e executar o arquivo DSHO_SincPCnetV11.exe. No caso do Windows Vista e do Windows 7, clique com o botão direto do mouse no DSHO_SincPCnetV11.exe, e clique na opção Executar como Administrador.
Nos Unix-Like eu nunca tive este problema de sincronia devido ao uso do ntp ou ntpdate.
Ajustando o Time Zone do seu Linux
Fosse um desktop ou servidor Linux, por exemplo, eu sempre programava um script para ajustar a hora do sistema operacional e da BIOS.
Pensando na possibilidade de algum amigo(a) administrador(a) está enfrentando problemas com a hora no seu servidor, eu acabei de fazer um script, simples, em shell, para ajudá-lo(a) na tarefa de ajustar o Time Zone.
Se preciso, corrija, ajuste, adapte o script às suas necessidades.
Como root, na pasta dos seus scripts pessoais, crie um arquivo chamado hora_certa.bash.
#vi hora_certa.bash
Dentro deste arquivo ( hora_certa.bash ), adicione o seguinte conteúdo:
#!/bin/bash
# SERVIDORES DE HORA
SRVS=(200.20.186.75 200.20.186.94 {a,b,c,d}.st1.ntp.br {a,b,c}.ntp.br gps.ntp.br);
# DEBUG
#echo ${#SRVS[@]};
#echo ${SRVS[@]};
#echo ${SRVS[1]};
#exit 0;
# CONTANDO O NUMERO DE SERVIDORES DE HORA
NUMS=${#SRVS[@]};
# DEBUG
#echo ${NUMS};
#exit 0;
# RETORNANDO ALEATORIAMENTE, A POSICAO, NA ARRAY, DE UM SERVIDOR DE HORA
NUM=$[($RANDOM % ${NUMS} - 0)];
# DEBUG
#echo ${NUM};
#exit 0;
# OBTENDO O IP/NOME DO SERVIDOR SEGUNDO A SUA POSICAO NA ARRAY
SRV=${SRVS[${NUM}]};
# DEBUG
#echo ${SRV};
#exit 0;
# CORRIGINDO HORARIO DE VERAO
/usr/bin/wget -O /tmp/tz-brasil.zic 'http://people.debian.org/~pzn/tz-brasil/tz-brasil.zic' && \
/usr/sbin/zic /tmp/tz-brasil.zic && \
rm -Rfv /tmp/tz-brasil.zic;
# PARANDO NTP
if [ -x "/etc/init.d/ntp" ];
then
/etc/init.d/ntp stop;
else
echo -e "\nVOCE NAO POSSUI O ntp INSTALDO!";
echo -e "CONTUDO ELE NAO HE NECESSARIO PARA ESTE SCRIPT.\n";
fi;
# ATUALIZANDO HORA
echo "ATUALIZANDO HORA ..."
/usr/sbin/ntpdate -t 5 ${SRV};
# SINCRONIZANDO HORA DA BIOS COM A HORA DO SISTEMA OPERACIONAL
echo "SINCRONIZANDO HORA DA BIOS ...";
/sbin/hwclock -w;
# REINICIANDO NTP
if [ -x "/etc/init.d/ntp" ];
then
/etc/init.d/ntp start;
else
echo -e "\nCASO DESEJE INSTALAR O ntp, UTILIZE O COMANDO:";
echo "apt-get install ntp";
fi;
exit 0;
Salve o arquivo.
Adicione um entrada no crontab, tipo:
# HORA CERTA
01 00-23 * * * (/meus-scripts/hora_certa.bash) 1> /var/log/hora_certa.log 2> /var/log/hora_certa.err
Para acompanhar a execução normal do script, utilize o arquivo de logs hora_certa.log.
Para acompanhar erros na execução do script, utilize o arquivo de logs hora_certa.err.
Pronto, agora estamos na "hora certa"!
Paz a todos!



1 comentários:
Muito útil seu comentário sobre executar como admininstrador. Essa dica deveria estar no site do Observatório Nacional. Muito obrigado.
Lobato - Natal/RN