Añadir timestamp al log del comando history | Algo de Linux

martes, 8 de marzo de 2016

Añadir timestamp al log del comando history

El historial de comandos es una de las herramientas más valoradas por los administradores cuando trabajamos en un terminal básicamente porque:
  • Nos permite fácilmente volver a ejecutar comandos de forma repetida.
  • Nos ofrece la posibilidad de seguir la pista de lo que se ha hecho en el sistema.
Ahora bien, la información que nos muestra el comando history por defecto, no incluye nada acerca de la fecha y la hora a la que se ejecutaron los comandos, como podéis comprobar en la siguiente salida:
# history | tail -3 

   1990  cd OpenWrt-ImageBuilder-15.05-ramips-mt7621.Linux-x86_64/
   1991  ls
   1992  nmap -sP 172.19.144.0/24
Si queremos incluir dicha información, no tenemos más que utilizar la variable de entorno HISTTIMEFORMAT

Por ejemplo, si ejecutamos el siguiente comando en un terminal:
# export HISTTIMEFORMAT="%F %T "
Estaremos estableciendo que se muestre la fecha y la hora en el history en el formato que indiquemos en la cadena entre comillas (En el ejemplo: Mostrar la fecha completa y la hora). Para ver qué formatos podemos aplicar, lo mejor es consultar el comando date.

Una vez aplicado el comando anterior, la salida del comando history reflejará la fecha y hora de ejecución de cada comando:
# history | tail -3 

   1990  2016-03-08 21:08:50 cd OpenWrt-ImageBuilder-15.05-ramips-mt7621.Linux-x86_64/
   1991  2016-03-08 21:08:51 ls
   1992  2016-03-08 21:09:03 nmap -sP 172.19.144.0/24
Para establecer el valor de la variable HISTTIMEFORMAT de forma permanente, no tenemos más que añadir al fichero .bashrc:
# echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
Publicado por primera vez en http://enavas.blogspot.com.es