
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/test
y du
no 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é sysdig
algo 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.