Python script check espacio arbol directorios

Quiero crear un script para revisar el espacio en disco de un árbol de directorios., tengo uno utilizando disk_usage que me devuelve el espacio libre, ocupado y total de una ruta concreta.

Necesito sacar el espacio individual por separado de un arbol concreto que me muestre todos esos datos de cada uno de los directorios hijo de una ruta concreta, realmente me gustaría poder indicar mediante un fichero de texto cada carpeta y umbral máximo y que compare lo que devuelve el script con ese fichero y salte una alerta en caso de superar el umbral pero no consigo hacer ninguna de las dos cosas ¿podríais ayudarme? ¿Un ejemplo similar?

1 respuesta

Respuesta

¿Tiene qué ser con Python o puede ser con un bat, o con Pcshell?

Hola.

tenía el tema aparcado, si podría valerme en bat o powershell también.

gracias.

Digamos, entonces, que partimos de una carpeta "madre" y de un archivo que contiene los nombres de las carpetas hijas y de un valor umbral de ocupación y que el script debe tomar cada carpeta hija, obtener el valor actual de ocupación, compararlo con ese umbral y sacar un mensaje si ese valor actual supera el umbral. Si este planteamiento es correcto no acabo de entender que significa el "espacio libre" en una carpeta. Los comandos del sistema dan el espacio libre en el disco en el que reside la carpeta. No me consta que se pueda crear un directorio/carpeta con un tamaño máximo adjudicado, pero puedo estar equivocado.

Por aportar algo concreto, pongo aquí un BAT que revisa la ocupación de una serie de carpetas y saca un mensaje si alguna supera un umbral. Utiliza un archivo, CONTROL.TXT ("configurable"), con los nombres de las carpetas a controlar y los umbrales correspondientes, separados por ";". Las carpetas incluyen el path completo y el umbral no utiliza puntos de miles:

@echo off
Setlocal EnableDelayedExpansion
set control=d:\carpeta prueba\control.txt
for /f "usebackq tokens=1,2 delims=;" %%a in ("%control%") do (
   pushd "%%a"
   for /f "tokens=3" %%x in ('dir ^| find "archivo" ^| find /v "lista"') do (
      set long=%%x
      set long=!long:.=!
      if !long! gtr %%b echo La carpeta %%a con %%x bytes supera el umbral de los %%b estipulados
      )
   Popd
 )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas