|
Página seguinte
Página anterior
Índice
Tudo o que você precisa saber está na página de manual do clock(8) ,
porém, este mini-COMO FAZER irá guiá-lo.
- Nota
É necessário ser o superusuário para executar o
``clock '', ou qualquer outro programa que afete a hora do
sistema ou o relógio da CMOS.
Verifique nos seus arquivos de inicialização do sistema se há um comando
parecido com ``clock -a '' ou
``clock -ua ''.
Dependendo da distribuição com que se está trabalhando, pode estar no
arquivo
/etc/rc.local , ou /etc/rc.d/rc.sysinit ,
ou em algum lugar similar.
Se estiver dizendo ``clock -s '' ou
``clock -us '', mude o
``s '' para um ``a '',
e então, verifique se há um arquivo
/etc/adjtime , que contém uma única linha parecida com isso:
0.000000 842214901 0.000000
Estes números são o fator de correção ( em segundo por dia ),
a hora que o relógio foi corrigido ( em segundos desde do dia 1 de Janeiro
de 1970 ), e a fração de segundos que foi arredondada da última vez.
Se este arquivo não existir, entre no sistema como superusuário
e crie-o, com uma única linha como essa ( com todos os zeros ):
0.0 0 0.0
Depois execute ``clock -a '' ou
``clock -ua '' manualmente do interpretador de comandos ( shell )
para atualizar o segundo número ( use o parâmetro ``u '' se o seu
relógio estiver configurado para hora Universal ao invés de local ).
Primeiramente é necessário saber que horas são :-) .
A sua hora local pode estar precisa ou não.
Meu método favorito é chamar o serviço de hora certa pelo telefone 130.
Se tiver acesso a um servidor de hora na rede, pode-se usar o programa
ntpdate do pacote xntpd
( use o parâmetro -b para proteger o kernel da confusão com o
relógio da CMOS ).
De outra maneira, use
``date -s hh:mm:ss '' para configurar manualmente a hora do kernel,
e depois execute ``clock -w '' para configurar o relógio da CMOS
a partir do relógio do kernel. É necessário relembrar quando foi a última
vez que o relógio foi configurado, então, escreva a data em algum lugar
onde você não irá perder. Se foi usado o ntpdate , faça
``date +%s ''
e escreva o número de segundos desde o dia 1 de Janeiro de 1970.
Depois de alguns dias ou semanas, volte e veja o quanto o relógio foi
alterado. Se estiver configurando o relógio manualmente, recomendo esperar
pelo menos duas semanas, e somente calcular a taxa de alteração para
o mais próximo de .1 seg/dia.
Depois de alguns meses, o mais próximo de .01 seg/dia ( algumas pessoas
exigem mais precisão do que isso, porém eu prefiro ser conservador ).
Se você está usando o
ntpdate , não espere todo esse tempo.
Pode-se ter um cron executando um
``clock -a '' em intervalos regulares, para manter a hora do
sistema alinhada com a hora ( corrigida ) da CMOS. Este comando também
irá ser executado no seu arquivo de inicialização toda vez que você
inicializar a máquina. Então, se você faz isso freqüentemente ( como
alguns de nós ), isto será o suficiente para os seus propósitos.
Observe que certos programas podem reclamar se a hora do sistema
pula ou retrocede alguns segundos. Se houver este problema, pode-se usar
o xntpd ou o ntpdate para corrigir a hora de forma mais
gradual.
Para configurar a hora
Entre no sistema como superusuário.
Ligue para o 130 e escute atentamente.
Digite:
date -s hh:mm:ss
mas não pressione enter até ouvir o bip ( após os segundos ).
( Pode-se usar o ``ntpdate '' ao invés do ``date '',
e pular a parte da ligação para o 130 ).
Isto configura a ``hora do kernel''.
Digite então:
clock -w
Isto configura a hora da CMOS para se ajustar com a hora do kernel.
Digite:
date +%j
( ou ``date +%s '' se você usou o ``ntpdate ''
ao invés do ``date '' acima )
e anote o número que ele fornece, para a próxima vez.
Iniciar a hora e verificar a taxa de alteração
Ache a data que foi escrita pela última vez.
Entre no sistema como superusuário
Digite:
clock -a
Isto configura a hora do kernel para se ajustar com a hora atual da CMOS.
Disque 130 e ouça a hora.
Digite:
date
e pressione enter quando ouvir o bip ( do 130 ). Enquanto espera, anote
a hora que foi dita, e não desligue o telefone.
Isto diz a você qual era a hora que estava na sua máquina,
quando deveria estar exatamente no minuto.
Agora, digite
date hh:mm:00
usando o minuto *seguinte* ao aquele que foi dito ( no 130 ),
e pressione enter quando ouvir o bip de novo ( agora você pode
desligar ). Para hh use a hora local.
Isto configura a ``hora do kernel''.
Digite:
clock -w
o qual escreve a nova hora (correta) para o relógio da CMOS.
Digite:
date +%j
( ou ``date +%s '' se foi este o comando utilizado
anteriormente )
Agora você tem três números ( duas datas e uma hora ) que irão permitir
o cálculo da taxa de alteração.
Calculando o fator de correção
No momento em que foi executado ``date '', sua máquina estava
rápida ou lenta?
Se estava rápida, será necessário subtrair alguns segundos, então,
escreva isso como um número negativo.
Se estava lenta, deve-se adicionar alguns segundos, então, escreva como
um número positivo.
Agora, subtraia as duas datas.
Se foi usado ``date +%j '',
os números representam o dia do ano ( 1- 365, ou 1-366 em alguns anos ).
Se o dia 1 de Janeiro foi passado desde que a última mudança do
relógio foi feita, então, será necessário adicionar 365 ( ou 366 ) ao
segundo número.
Se foi usado ``date +%s '', então, o numero é em segundos,
e será necessário dividí-lo por 86400 para obter-se os dias.
Se você já tem um fator de correção no arquivo
/etc/adjtime , será necessário calcular o número de segundos
que você já corrigiu. Se o fator de correção aumentou, este número terá o
sinal oposto do medido; se diminuiu, ele terá o mesmo sinal do medido.
Multiplique o antigo fator de correção pelo número de dias e, adicione o
novo número de segundos
( adição com sinais --
se os dois número têm o mesmo sinal, será obtido um número maior,
se os sinais forem opostos, o número será menor ).
Divida então o número total de segundos pelo número de dias para obter
o novo fator de correção, e coloque-o no arquivo
/etc/adjtime substituindo o antigo valor.
Anote a nova data ( em segundos ou dias ) para a próxima vez.
Eis aqui como o meu arquivo /etc/adjtime se encontra:
-9.600000 845082716 -0.250655
( Observe que 9.6 segundos por dia é bem próximo de cinco minutos por mês! )
Página seguinte
Página anterior
Índice
|