¿Cómo grabar el tamaño máximo de una carpeta?

¿Cómo grabar el tamaño máximo de una carpeta?

Los paquetes se descomprimen y compilan en un sistema de prueba en/tmp/test .

Necesitoobtener el tamaño máximo que tuvo el directorio en cualquier momentodurante todos estos pasos.

De momento me ayudo anotando el tamaño con

du -sch /tmp/test >> /tmp/size.txt 

en un bucle. Pero esta es una solución muy sucia y no es precisa. Podría ser que la computadora esté muy ocupada /tmp/testy duno alcance el tamaño máximo. ¿Existe una solución elegante?

Los sistemas de archivos disponibles son ext o btrfs si eso ayuda.

Un lector pidióejemplos de uso:

  • Al preparar paquetes para Gentoo Linux, necesito saber cuánto espacio se necesita durante la compilación. Para algunos paquetes como Firefox, Boost o LibreOffice es muy importante que el paquete verifique que haya suficiente espacio libre disponible.

  • Escribí scripts que crean muchos archivos temporales. Sería interesante controlar el tamaño de la carpeta.

Actualizar:Mientras tanto, encontré sysdigalgo que parece prometedor para esta tarea, pero aún no obtuve el tamaño de la carpeta.

Respuesta1

Una posibilidad podría ser monitorear los eventos del sistema de archivos y ejecutar algún comando de registro en la creación y eliminación de archivos. Existen algunas herramientas que probablemente facilitarían este enfoque, comoinotificar,fswatch, o elMarco de auditoría de Linux. Puede intentar registrar el espacio total en disco después de cada evento o simplemente registrar el cambio en el espacio en disco y luego utilizar los registros para calcular el tamaño máximo. Consulte, por ejemplo, la siguiente publicación de superusuario:

Un enfoque diferente proviene de la siguiente publicación:

Allí se sugiere montar el directorio en cuestión en su propia partición y luego ejecutariostatoen esa partición. Eso debería permitirle registrar continuamente eventos de IO en ese directorio.

Para obtener más información sobre la supervisión de E/S del disco, puede consultar la siguiente publicación:

Respuesta2

Programe un guión para cada minuto

*/1 *. *. *. * script path

El guión debe ser el siguiente.

#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile

Después de un tiempo, clasifíquelo y obtenga el tamaño más alto.

información relacionada