Como converter timestamp em logs de servidor Linux
P

PixelVibes

Daily
Time Analytics
wiki
2025-09-17
Como converter timestamp em logs de servidor Linux
# Como converter timestamp em logs de servidor Linux

## Métodos Nativos do Linux

Use o comando `date` para converter timestamps Unix rapidamente. O formato básico é:

```bash
date -d @1659372842

Para formatos personalizados, adicione parâmetros strftime:

date -d @1659372842 +'%d/%m/%Y %H:%M:%S'

Processe logs em massa com awk:

awk '{print strftime("%c",$1)}' access.log

Ajuste o fuso horário diretamente no comando:

TZ='America/Sao_Paulo' date -d @1659372842

Ferramentas Especializadas

Para logs JSON, use jq com filtros temporais:

jq '.timestamp |= (. | tonumber | strftime("%F %T"))' log.json

Em Python, utilize a biblioteca datetime:

from datetime import datetime
print(datetime.fromtimestamp(1659372842).strftime('%Y-%m-%d %H:%M:%S'))

Casos Práticos

Apache: Converta o formato %t do CustomLog:

date -d "$(echo '[01/Jul/2023:10:15:32' | sed 's:/: :g')"

Nginx: Trate timestamps com milissegundos:

date -d @$(echo 1659372842.123 | cut -d. -f1)

Systemd: Para microssegundos no journalctl:

date -d @$(echo '1659372842123456' | cut -c1-10)

Solução de Problemas

Valores negativos indicam datas antes de 1970:

date -d '@-123456789'

Corrija timezones em containers Docker:

docker run -v /etc/localtime:/etc/localtime:ro sua_imagem

Para o problema do ano 2038 em sistemas 32-bit:

date -d '@2147483647'

Otimização em Larga Escala

Padronize para ISO 8601 em sistemas distribuídos:

date -u +"%Y-%m-%dT%H:%M:%SZ"

Sincronize relógios com chrony:

chronyc tracking

Monitore dessincronizações:

ntpq -pn