Dica curta: Sincronizando o horário do seu Linux com um servidor NTP

É absolutamente comum encontrarmos dificuldades para se manter o horário do sistema operacional, seja ele Windows ou Linux, devidamente atualizado e correto. As causas são as mais diversas e vão de problemas com a pilha da CMOS até o puro descuido do administrador de sistemas no que se refere ao ajuste do horário no respectivo micro ou servidor.

Os prejuízos que isso pode acarretar também são amplos e, não raras vezes, bastante traumáticos em tarefas administrativas. Imagine você precisar auditar os logs do seu firewall Linux e todos os acessos registrados em um horário que não bate com a realidade? Dificilmente você conseguirá provar/verificar quando o acesso indevido ou o problema com conexão ocorreu com precisão.

Felizmente no Linux, a exemplo do Windows (clique duas vezes no relógio ao lado direito inferior, na barra de tarefas, e vá até a guia “Horário na Internet”), é possível fazer com que o próprio sistema operacional sincronize-se com um servidor NTP (Network Time Protocol) e mantenha a data e hora atualizadas de forma automática. Para tanto, no Debian Linux e em outras distribuições baseadas nela (como o Ubuntu, por exemplo), basta se instalar o pacote ntpdate:

# apt-get update

# apt-get install ntpdate

A grande maioria das distribuições populares do Linux possuem o pacote pré-compilado do ntpdate, que na prática, nada mais é do que um cliente NTP. A sintaxe do ntpdate é bastante simples, basta invocá-lo indicando um servidor NTP a ser consultado. De acordo com o GuiadoHardware.net, pode-se passar um ou mais servidores como parâmetro. O ideal é sempre passar mais de um servidor, visto que o algoritmo do ntpdate testa todos os fornecidos para decidir com quem sincronizar. Caso seja passado somente um, ele sincroniza com este mesmo.

Se você não conhece algum servidor NTP, uma boa opção é usar o pool.ntp.org. Este, na verdade, sorteia aleatoriamente algum servidor com acesso aberto pela internet para você. Também é possível sortear servidores da sua zona mais especificamente, no nosso caso (Brasil): br.pool.ntp.org.

Ficaria assim então o comando para atualizar usando três servidores ao acaso:

# ntpdate pool.ntp.org pool.ntp.org pool.ntp.org

ou

# ntpdate br.pool.ntp.org br.pool.ntp.org br.pool.ntp.org

Mas se você é daqueles desconfiados que não executam nem mesmo uma mosca antes de ter certeza, pode usar o parâmetro “-q” para que o ntpdate somente teste os servidores e disponibilize os dados para que você veja, sem atualizar o seu sistema.

# ntpdate -q pool.ntp.org pool.ntp.org pool.ntp.org

Você deve rodar o ntpdate regularmente para garantir que seu sistema esteja sempre sincronizado. Algumas maneiras de fazer isso são agendar com o cron (man cron), ou executá-lo na inicialização do sistema (ver arquivos de inicialização da sua distro).