Picture of Roberto Sobrinho
Roberto Sobrinho

28/05/2024

Rastreabilidade Garantida: Timestamps no History do Bash

Olá pessoal, hoje vamos falar sobre um assunto muito interessante. Vamos aprender como incluir data e hora no history do Linux.

##CavaloManco 🐎 🐎 🐎 ##BóBó 🥎🥎🥎

Ter um registro preciso de quando cada comando foi executado pode ser essencial para troubleshooting e auditorias. Habilitar timestamps no histórico de comandos do Bash é uma prática útil que todo administrador de sistemas deveria adotar. Neste artigo, vou te guiar nesse processo simples, mas eficaz.

1. Verifique a Versão do Bash

[root@appbi2 ~]# bash --version

GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

O recurso de timestamps está disponível a partir do Bash 4.1

2. Configure o Timestamp

Agora, adicione a configuração necessária ao seu arquivo .bashrc. Abra o arquivo com um editor de texto:

[root@appbi2 ~]# vi ~/.bashrc

Insira a seguinte linha no final do arquivo:

export HISTTIMEFORMAT="%d/%m/%y %T "

Isso configurará os timestamps para mostrar a data e a hora no history.

Explicação Técnica do HISTTIMEFORMAT

O HISTTIMEFORMAT é uma variável de ambiente no Bash que especifica o formato do timestamp a ser usado no histórico de comandos. Vamos detalhar o que cada parte dessa configuração faz:

  • %d: Dia do mês (de 01 a 31)
  • %m: Mês do ano (de 01 a 12)
  • %y: Ano com dois dígitos
  • %T: Hora no formato 24 horas (hh:mm:ss)

Quando você define HISTTIMEFORMAT="%d/%m/%y %T ", está instruindo o Bash a prefixar cada comando no history com a data e a hora de cada comando.

3. Aplique as Mudanças

Depois de salvar o arquivo, recarregue o .bashrc para aplicar as mudanças:

[root@appbi2 ~]# source ~/.bashrc

4. Verifique a Configuração

Execute alguns comandos no terminal e depois visualize o histórico para ver os timestamps:

[root@appbi2 ~]# history

Exemplo Prático da Saída

Aqui está um exemplo de como a saída do comando history ficará após habilitar os timestamps:

[root@appbi2 ~]# history
  979  28/05/24 07:04:26 free -g
  980  28/05/24 07:04:49 sysctl vm.swappiness=10
  981  28/05/24 07:04:56 cat /proc/sys/vm/swappiness
  982  28/05/24 07:05:06 vi /etc/sysctl.conf
  983  28/05/24 07:05:52 sysctl -p
  984  28/05/24 07:05:57 ls -tra
  985  28/05/24 07:05:59 ls -ltra
  986  28/05/24 07:06:06 cat x.sh
  987  28/05/24 07:06:20 ls -ltra
  988  28/05/24 07:06:31 cat clear_swap.sh
  989  28/05/24 07:06:49 nohup sh clear_swap.sh > clear_swap.out &
  990  28/05/24 07:06:51 jobs
  991  28/05/24 07:06:54 free -g
  992  28/05/24 07:08:49 free -m
  993  28/05/24 07:12:23 history
  994  28/05/24 07:21:52 free -g
  995  28/05/24 07:21:56 free -m
  996  28/05/24 07:28:21 vi ~/.bashrc
  997  28/05/24 07:28:42 source ~/.bashrc
  998  28/05/24 07:28:45 history
  999  28/05/24 07:28:58 ls
 1000  28/05/24 07:29:00 pwd

Situação Prática

Vamos imaginar uma situação prática: você está investigando um incidente de segurança e precisa identificar a hora exata em que comandos específicos foram executados. Com os timestamps habilitados, fica muito mais fácil correlacionar esses comandos com outros eventos do sistema, como tentativas de login suspeitas. Por exemplo, se você descobrir que comandos críticos foram executados à 1h da manhã, pode verificar os logs de acesso para identificar quem estava ativo nesse momento. Sem os timestamps, essa correlação seria muito mais difícil.

Benefícios

  • Auditoria: Facilita a rastreabilidade das ações realizadas no sistema.
  • Troubleshooting: Ajuda a correlacionar ações com eventos do sistema, tornando a resolução de problemas mais eficiente.

Implementar timestamps no histórico de comandos é uma medida simples que pode agregar grande valor ao gerenciamento do seu ambiente Linux.

🚀🚀🚀 #OGuinaNãoTinhaDó 👋👋👋 #SeReagirBumViraPó 🚬🚬🚬 #CavaloManco 🐎 🐎 🐎

Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

Rastreabilidade Garantida: Timestamps no History do Bash