Rimuovere i file inutilizzati

di Calogero Bonasia (http://www.linuxteam.it)

Recentemente un cliente mi ha chiesto di individuare su un sistema Linux quali fossero, se ve ne fossero, i file non utilizzati e se vi fossero anche gruppi o utenti in disuso. Scriviamo in una shell dei comandi:

cosacerchiamo="/dev /etc /home /opt /usr /var"

premiamo invio e scriviamo anche

profondo="3"

quindi possiamo dire

/usr/bin/find $cosacerchiamo -depth -maxdepth $profondo -xdev -nouser -nogroup

Possiamo infilare tutto in uno script, se viene più comodo. Analogamente questo script permette di trovare gli utenti che non sono proprietari di file

#/bin/bash
cosacerchiamo="/dev /etc /home /opt /usr /var"
profondo="3"
 
for u in `/bin/grep -v 'root' /etc/passwd |/bin/cut -d: -f1`
do
  echo -n "$u..."
  x=`/usr/bin/find $cosacerchiamo -depth -maxdepth $profondo -xdev -user $u |wc -l`
  if [ $x -gt 0 ]; then
    echo "non cancellabile"
  else
    echo "cancellabile"
  fi
done

Se vogliamo estendere la cosa ai gruppi, ecco cosa aggiungere allo script

for g in `/bin/grep -v 'root' /etc/group |/bin/cut -d: -f1`
do
  echo -n "$g..."
  x=`/usr/bin/find $cosacerchiamo -depth -maxdepth $profondo -xdev -group $g |wc -l`
  if [ $x -gt 0 ]; then
    echo "non cancellabile"
  else
    echo "cancellabile"
  fi
done