anúncios

domingo, 20 de outubro de 2013

Atualizar horário de verão sincronizado via NTP

Com o adiantamento do relógio em 1 hora, devido o horário de verão na 0:00 de sábado para domingo no dia 20/10/13 e com isso tive que atualizar os servidores para deixar sincronizados via NTP.
Essa alteração apenas afeta nas regiões Sul, Sudeste e Centro-Oeste e vai até 16 de fevereiro de 2014. Os estados atingidos são: Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Minas Gerais, Espírito Santo, Goiás, Mato Grosso e Mato Grosso do Sul, além do Distrito Federal. As regiões Norte e Nordeste não participam da mudança.

Bom, depois de uma breve explicação, vamos configurar sincronização via NTP.
O arquivo /etc/localtime armazena dados de região da máquina. Outras versões desse arquivo ficam localizadas em /usr/share/zoneinfo/.
Antes, verifique se tem instalado o pacote ntp, caso não esteja, instale o ntp usando o gerenciador de pacotes da sua distribuição Linux.
No Slackware já vem instalado o pacote ntp.
Mas no caso do Debian/CentOS e derivados é necessário instalar.
Debian: #apt-get install ntp
CentOS: #yum install ntp
ntp.sh
#!/bin/bash
#remove o arquivo atual
rm /etc/localtime
#criar um link simbolico para um dos arquivos no zoneinfo
ln -s /usr/share/zoneinfo/Brazil/East /etc/localtime
#ln -s /usr/share/zoneinfo/Brazil/West /etc/localtime
#ln -s /usr/share/zoneinfo/Brazil/Acre /etc/localtime
#ln -s /usr/share/zoneinfo/Brazil/DeNoronha /etc/localtime

cat /usr/share/zoneinfo/America/Sao_Paulo.zic
Rule BrazilSP 2013 only - Oct 20 0:00 1:00 S
Rule BrazilSP 2014 only - Feb 16 0:00 0 -
#Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone America/Sao_Paulo -3:00 BrazilSP BR%sT

Para sincronizar com algum servidor NTP, faça:
#ntpdate -q a.ntp.br
Para incluir o script no cron com editor de sua preferência, faça:
#env EDITOR=vim crontab -e
Nesse caso abrirá o crontab irá abrir com editor vim.
Adicione no final do crontab
00 * * * * ntpdate -q a.ntp.br
Feito!

3 comentários:

  1. Muito complicado. Vamos no KISS (Keep It Simple, Stupid!)

    dpkg-reconfigure tzdata; apt install chrony

    Resolvido.

    ResponderExcluir
    Respostas
    1. A propósito, se a distribuição já (como não?) tiver systemd:

      # timedatectl set-timezone America/Sao_Paulo

      Excluir
  2. dpkg-reconfigure tzdata; apt install chrony

    ResponderExcluir