Data & hora

quinta-feira, 25 de setembro de 2008

Artigo muito bom sobre data e hora em ambiente Linux:

1. Como funciona a data/hora no Linux?

Nesse tutorial vou além de jogar comandos para o leitor e tentar explicar um pouco do complexo processo que existe por trás do reloginho do pingüim.

Existem dois principais sistemas de hora no Linux:

* O Relógio do Hardware: que roda independente de qualquer sistema e continua funcionando mesmo quando o pc está desligado. Esse relógio é comumente chamado de Relógio de Hardware, Relógio de Tempo Real, RTC (sigla em inglês para Real Time Clock), Relógio da BIOS e Relógio CMOS.
* O Relógio do Sistema: esse guarda a hora utilizando um relógio dentro do kernel do Linux e é comandado por uma interrupção especial chamada timer. Aqui o Relógio da BIOS é utilizado apenas pra marcar a data/hora quando o sistema não está ligado. No processo de boot essa data/hora armazenada na BIOS é lida e nunca mais requisitada até o próximo boot.

2. Manipulando Data/Hora de Sistema e de Hardware.

O comando date, bastante conhecido, informa a data e hora do sistema em diversos formatos especificados pelo usuário. Por exemplo, para imprimir a data e a hora com o mês por extenso o comando seria:

date +"%d de %B de %Y"

Note que concateno com "de" para produzir algo como: 31 de Outubro de 2005. Mais Exemplos:

$ date -s 10:00 (seta a hora para as 10:00)
$ date -s Qua (vira o dia para quarta-feira as 00:00)
$ date -s "11/01/2005 13:55" (ajusta data e hora de uma vez)

A data trazida pelo comando date é a data que o sistema tem controle, ou seja, o relógio de Sistema. Pode-se ajustar sua data e hora conforme necessário, porém a mesma não será mantida até o próximo boot, quando o sistema fará uma nova requisição ao relógio do Hardware para ajustar-se.

Ajustar a data/hora do sistema agora passa então a ser uma operação de duas etapas: na primeira atualizamos a data/hora do Sistema; na segunda sincronizamos essa hora definida no Sistema com aquela definida na BIOS.

Vejamos um exemplo onde queremos modificar a data do Sistema para 31 de Outubro de 2005 e atualizar na BIOS:

$ date -s 10/31/2005

Ok, agora precisamos fazer o hardware receber a hora setada no sistema:

$ clock -w.

clock é um link para hwclock e a opção -w faz exatamente o que queremos: usar a data/hora do sistema para atualizar a data/hora da BIOS. O contrário também é possível, podemos utilizar a data/hora da BIOS para setar nosso sistema, trocando a opção -w por -s. Isso é feito pelo sistema na inicialização.

Referência: Dicas-l

0 comentários: