Calcolare la dimensione dei files più recenti di una certa data con Linux eLocal - Calcolare la dimensione dei files più recenti di una certa data con Linux

eLocal Group Centro Soluzioni
Calcolare la dimensione dei files più recenti di una certa data con Linux






Chi lavora con MS Windows ricordera' sicuramente l'applicazione Space Monger che consentiva di mappare le cartelle presenti su un determinato disco rigido consentendo di avere visivamente chiaro lo spazio occupato da una cartella rispetto al totale del disco e farsi cosi' una rapida idea di quali file occupano la maggior parte dello spazio.

A tal proposito, molto spesso, vale anche in questa circostanza il principio di Pareto che recita che l'80 percento dello spazio occupato e' determinato dal 20 percento dei files, mentre di converso il 20 percento dello spazio rimanente occupato e' composto dell'80 percento dei files totali.

A parte la chiara divagazione, vediamo come si puo' risolvere anche questo problema da riga di comando con Linux e Python.

Con Linux grazie al famoso comando du che ci consente di ottenere un risultato simile a Space Monger, ma come si puo' ottenere il risultato filtrando solo quei files che sono piu' recenti di una certa data?


Io ho realizzato questo semplice script che in base al nome di una cartella di partenza in questo caso crypted e un numero di giorni in questo caso 5, lo script utilizza il comando find per estratti i soli files piu' recenti di 5 giorni e uno script python che crea lo somma di una lista di bytes occupati da ciascun file.


#!/bin/sh
find crypted/ -mtime -5 | while read f; do du -s "$f"; done | python -c "import sys; print(sum(int(l[:l.find('crypted')]) for l in sys.stdin))"

NB: Il ciclo while per filtrare i singoli risultati ottenuti dal comando find e' necessario per spezzare i singoli files valori che vengono passati in stdin ad un comando Python inline.

Il sistema funziona sia con Python 2.7 che con la versione Python 3.





Ultimo accesso a questo articolo il 27/04/2024


Simone Gardella simone.gardella@elocal.it Guarda il profilo social


Potrebbero interessarti anche queste soluzioni



Torna alle soluzioni