Mostrar espacio total de últimos ficheros modificados en Linux

Hoy otro artículo técnico, para amantes de la consola de comandos en nuestros queridos sistemas GNU Linux. En algunos casos, en mi día a día de administrador de sistemas, he tenido que hacer de forense, inventigando que ficheros creados recientemente han hecho que salte la alarma, en el sistema de monitorización de turno, véase Nagios, PandoraFMS, Zabbix o Icinga, y ha hecho que un recurso se quede sin espacio o le quede poco para llenarse. Por suerte tenemos a nuestra disposición una gran navaja suiza, que son los cientos de comandos disponibles. En éste caso para mis pesquisas he utilizado du y find.

Mostrar espacio total de últimos ficheros modificados con du y find

Realmente esto lo podemos de hacer de varias maneras, ya que mediante tuberías y otras cosejas de los sistemas like-UNIX, tenemos casi sin fin de posibilidades. Yo os mostraré algunos ejemplos. Vamos a imaginar que un punto de montaje, que en este caso es un de un servidor NFS, se ha quedado con sólo un cinco por ciento disponible, y todo ha sido durante la noche, porque ayer no existía ésa alarma. Vamos a utilizar los comandos que he mencionado antes, esto es:

  1. cd /punto-de-montaje/NFS/
  2. du -sh $(find  -type f -mtime -1)

¿Qué hemos hecho? En la primerá línea hemos accedido a la carpeta del punto de montaje, y allí, utilizando ‘du‘, nos muestra el espacio ocupado por dichos ficheros, con el parámetro ‘s‘ le decimos que queremos el total del árbol de directorios a examinar y con el parámetro ‘h‘, que significa «legible para los humanos», nos muestra una salida más fácil de leer.

Todo muy bien amigo, y el resto del comando, ¿Qué significa lo que está entre paréntesis? Os explico, si os fijáis justo delante del primer paréntesis tenemos un símbolo de dólar, esto hace que lo que tenemos entre los paréntesis sea un valor.  Lo explico de otra manera, significa que el resultado del comando entre paréntesis lo toma ‘du‘ como un valor.

Vamos al lío, el comando ‘find’ tiene dos parámetros, el primero, llamado «type» indica que tipo de fichero vamos a buscar, que en éste caso es ‘f‘, esto es, ficheros.  Al tenemos el parámetro «mtime«, al que le tenemos que decir hace cuanto tiempo queremos que mire, en nuestro caso es «1″, esto es, hace menos de un día.

Otra manera sería utilizar «-exec», que nos permite utilizar otro comando, además de ‘find‘, por ejemplo, en nuestro caso sería:

  1. find /punto-de-montaje/NFS -type f -mtime 1 -exec du -sh {} \;

De esta manera se nos mostrará la información, archivo tras archivo, si queremos que nos muestra sólo el resultado total, tenemos que cambiar el último símbolo «\;» por «+;«

Pues nada, espero que os haya parecido didáctico y útil. Nos leemos en la próxima.

Fuentes consultadas | unix.stackexchange.com | stackoverflow.com