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