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.

Terminal-icon-shell-linux-unix

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
2
cd /punto-de-montaje/NFS/
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

You may also like...

6 Responses

  1. Gabriel dice:

    Hola David una consulta, si quisiera limitar que sólo me muestre aquellos archivos modificados pero a partir de un peso específico, me explico, hacerle seguimiento a bases de datos de 500 mb para arriba? Gracias por el post!! (-:

    • Hola Gabriel, primero de todo muchas gracias por pasarte por aquí,

      Referente a la pregunta, la respuesta es utilizar junto a ‘find’ en el parámetro ‘-size’ más el tamaño, por ejemplo:

      find . -size +200M

      Así buscarás ficheros más grandes de 200 MB.

      Saludos

  2. Gabriel dice:

    Muchas gracias por la ayuda David!! (-:

  3. Iyán dice:

    Muy interesante! La verdad que tienes toda la razón, la de filigranas que se pueden hacer con |, > y > en sistemas GNU/Linux…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR