Ubuntu script per eliminare vecchi file

Avendo un server per registrare dalle telecamere tramite il software motion si è posto il problema di mantenere dello spazio libero sugli hard disk del server.
La soluzione più logica mi è sembrata quella di mantenere libero sempre almeno 1GB di memoria.

Online si trovano diversi script, ma ognuno presenta delle debolezze/BUG, così mi son deciso di scriverlo da zero.

Lo script scritto va a leggere tutti i file presenti nelle directory e subdirectory, li ordina per data di creazione e li elimina uno ad uno finché non c’è almeno 1GB di spazio libero sul disco. Una volta raggiunta la quota minima si preoccupa di eliminare le cartelle vuote, per non lasciare spazzatura.

Di seguito il codice:

#!/bin/bash

# Cartella
DIR=/video/hd

# Quantita spazio da tenere libero(100GB)
FREESPACE=100000000

# Rimuovo file vuoti/corrotti
find $DIR -size 0 -delete 

find $DIR -type f -printf "%T@|%p\n" | sort -n | while read f ; do
  if [ `df --output=avail $DIR | tail -1` -ge $FREESPACE ] ; then
    break
  fi
    filename="$(cut -d'|' -f2 <<<"$f")"
    rm -f $filename
done

# Rimuovo cartelle vuote
find $DIR -depth -type d -empty -exec rmdir {} \;

Il file è scritto in bash ed è molto semplice. Nella variabile DIR viene definita la directory da tenere pulita, mentre nella variabile FREESPACE lo spazio minimo da avere libero sul disco.

Tale script è stato poi inserito in esecuzione con crontab affinché venga eseguito ogni minuto

Più sono i file più lo script ha bisogno di memoria, in particolare dovete assicurarvi di avere spazio a sufficienza nella directory /tmp/. Personalmente tale directory per velocità e risparmiare scritture su disco è sta impostata che venga montata in RAM all'avvio del sistema tramite fstab

1 commento su “Ubuntu script per eliminare vecchi file”

Rispondi a Aktarus Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Torna in alto

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo. Se vuoi maggiori informazioni: sitesolution.it/privacy/

Chiudi