Fuso horário na VPS Linux: como acertar a hora do servidor com timedatectl

Tempo de leitura: 3 minutos

O backup estava agendado para as 3h da manhã, mas rodou à meia-noite, no meio do expediente de alguém. Os logs mostram horários que não batem com nada. O relatório do sistema chega com a data do dia anterior. Na maioria das vezes, o culpado é o fuso horário da VPS, que vem configurado em UTC por padrão.

Detalhes como esse fazem diferença quando o servidor roda tarefas agendadas. Se você ainda não tem onde rodar isso, a Cloud VPS Brasil já entrega o servidor pronto.

Por que a VPS vem em UTC

UTC é o horário universal, sem horário de verão e sem fuso. Servidores costumam usá-lo como padrão porque facilita comparar eventos entre máquinas de países diferentes. O problema é que o cron usa o horário local do sistema, então tudo o que você agenda pensando no horário de Brasília acontece três horas antes.

Passo 1: ver a configuração atual

timedatectl

A saída mostra a hora local, a hora em UTC, o fuso configurado e se o relógio está sincronizado:

Local time: ter 2026-10-27 09:15:02 UTC
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active

Passo 2: escolher o fuso certo

Liste os fusos do Brasil:

timedatectl list-timezones | grep America/

Os mais usados:

  • America/Sao_Paulo: horário de Brasília (Sudeste, Sul, Goiás, Distrito Federal, Bahia).
  • America/Recife, America/Fortaleza, America/Belem: também UTC-3, sem diferença prática hoje.
  • America/Manaus e America/Cuiaba: UTC-4.

Passo 3: aplicar

sudo timedatectl set-timezone America/Sao_Paulo

Confira de novo com timedatectl. A hora local já deve aparecer certa.

Passo 4: garantir a sincronização com NTP

Relógio no fuso certo, mas atrasado alguns minutos, também causa problema: certificados SSL podem ser recusados e autenticação em duas etapas pode falhar. Ative a sincronização automática:

sudo timedatectl set-ntp true

Para ver o estado da sincronização:

timedatectl timesync-status

Se o comando não existir, a sua distribuição usa o chrony. Nesse caso:

sudo systemctl enable --now chronyd
chronyc tracking

Passo 5: reiniciar os serviços que dependem da hora

O cron e o serviço de log leem o fuso na inicialização. Reinicie os dois para não esperar o próximo reboot:

sudo systemctl restart cron
sudo systemctl restart rsyslog

Em AlmaLinux e Rocky, o serviço do cron se chama crond.

E as aplicações?

  • PHP tem a diretiva date.timezone, que pode ser ajustada para America/Sao_Paulo.
  • MySQL e MariaDB usam o fuso do sistema depois de reiniciados.
  • Containers Docker não herdam o fuso do servidor. Passe a variável TZ=America/Sao_Paulo no docker run ou no docker-compose.yml.

Conferindo os agendamentos

Depois do ajuste, revise o crontab: se você tinha compensado as três horas de diferença à mão, desfaça agora. O guia de crontab na VPS Linux ajuda a revisar.

Servidor no Brasil, no horário do Brasil

Com o fuso certo, o que você agenda acontece na hora que você pensou. Na Cloud VPS Brasil você conta com Intel Xeon Gold, SSD NVMe, baixa latência, tráfego ilimitado, preço fixo em reais e suporte humano via WhatsApp e ticket. Fale com a equipe pelo WhatsApp e escolha o plano ideal para o seu projeto.