Gestion de History

Como mejorar el log histórico de tu shell

Table of Contents

El archivo de logs histórico (history) tiene varias opciones que podemos cambiar para tener un mejor control del mismo. Aquí vamos a ver algunas opciones para el control y gestión del fichero del log histórico (history).

Mostrar la fecha y hora de cuando escribimos comandos

Para mostrar la fecha y hora en el formato que requieras puedes agregas las lineas siguientes:

export HISTTIMEFORMAT='- %F %T - '

Control del tamaño del archivo de logs histórico

Tenemos dos variables de entorno para ello, HISTSIZE y HISTFILESIZE, que indican el tamaño del fichero, por ejemplo:

HISTSIZE=1000
HISTFILESIZE=1000

Con esto hacemos que el tamaño máximo del fichero de logs histórico sea de 1000 comandos o líneas.

Si ponemos el tamaño de la variable HISTSIZE a cero hacemos que no se guarde nada en el archivo de logs histórico

export HISTSIZE=0

Control de duplicados en el histórico

En el log histórico se van guardando TODOS los comandos que se van introduciendo aunque repitamos 20 veces el mismo comando, se guardará 20 veces, lo cual es en ocasiones una perdida de espacio. Por lo que podemos usar la variable HISTCONTROL para hacer 2 cosas:

  • Eliminar los duplicados consecutivos con ignoredups.
  • Eliminar los duplicados sean o no consecutivos con erasedups.
HISTCONTROL=ignoredups
HISTCONTROL=erasedups

Path para guardar el archivo de logs histórico

Por defecto el histórico se guarda en ~/.bash_history pero podemos indicar donde guardarlo con la variable HISTFILE.

HISTFILE=~/.bitacora.

Un truco muy bueno cuando en un mismo servidor entran varios administradores que se pasan a root y poder controlar y guardar que hace cada uno es: Guardar un archivo de logs histórico por cada uno de ellos. Lo puedes hacer de la siguiente forma:

HISTSIZE=5000
HISTFILESIZE=5000
HISTFILE=/root/.bash_hist-$(who am i | awk '{print $1}';exit)

Con esto se guardará en el home de del usuario root un archivo de logs histórico por cada uno de los usuarios que se hayan pasado a root. El tamaño se puede ampliar o reducir a gusto. También podemos poner que ignore duplicados.

Todas estas variables debemos ponerlas en un archivo donde se activen al arranque que puede ser ~/.bashrc.

Espero les sea útilidad.

😄

Edit this page

Luis Cacho
Luis Cacho
Senior Container Infrastructure Consultant

Senior Container Infrastructure Consultant at Red Hat | DevOps Practitioner | Kubernetes Enthusiast | Ansible Ninja | Data Science Noob

Next
Previous

Related