
Per evitare di ritrovarsi con il disco pieno è consigliabile monitorare lo spazio, a venirci in aiuto questa volta sono alcuni comandi nativi di linux, che tutti voi probabilmente conoscete, se li concatenate correttamente e li inserite in contab avrete un’avviso in caso di superamento della soglia impostata.
Vediamo come fare, i comandi in qestione sono i seguenti:
test
df
grep
awk
sed
il comando esatto da inserire in crontab è il seguente:
50 7 * * * root test $(df /dati | grep ^/ | awk ‘{print $5}’|sed ‘s/.$//’ ) -gt 94 && mail -s “Warning: contollare lo spazio libero sul server” tuaemail@tuodominio
Vediamo di capire come funziona nello specifico
50 7 * * * root Crea un lavoro che viene eseguito una volta al giorno alle 07:50.
test
imposta un semplice confronto della shell utilizzando -gt
e controlla se il valore ricavato è maggiore del valore impostato, in questo caso quando il disco raggiunge il 94% della sua capienza viene inviata una mail di avviso
Il comando df
verifica lo spazio libero sul percorso montato specificato in questo caso /dati
Con grep
^/ si ottiene solo la linea di uscita del comando df senza le intestazioni.
Con awk
estraggo il valore della quinta colonna dell’output, in questo caso la percentuale dello spazio occupato.
Il comando sed ‘s/.$//’ elimina l’ultimo carattere dell’otput in questo caso la %
&&
dice di eseguire il comando successivo solo se il primo (il test x -gt y
) restituisce vero.
mail -s invia una mail contenente in oggetto il testo specificato tra le virgolette
Con questo comando potete analizzare al volo la dimensione di TUTTE le sottodirectory della posizione attuale.
du -ks * | sort -nr | cut -f2 | xargs -d '\n' du -sh