Soluzione 1:
Invece di eliminare i file dovresti ruotarli, ad es. g. utilizzando logrotate
.
Non sai mai quando avrai effettivamente bisogno dei log di qualche tempo fa, quindi è meglio archiviarli (fino a un'età ragionevole, ad es. 3 mesi).
logrotate
può comprimere i tuoi vecchi file di registro in modo che non occupino molto spazio su disco.
Soluzione 2:
Elimina tutti i file:
find /var/log -type f -delete
Elimina tutti i file .gz e ruotati
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
Prova a eseguire il comando senza "-delete", per testarlo.
Soluzione 3:
Se elimini tutto in /var/log, molto probabilmente ti ritroverai con tonnellate di messaggi di errore in pochissimo tempo, poiché ci sono cartelle che dovrebbero esistere (ad esempio exim4, apache2, apt, cups, mysql, samba e altro). Inoltre:ci sono alcuni servizi o applicazioni che non creeranno i propri file di registro, se non esistono. Si aspettano che sia presente almeno un file vuoto. Quindi la risposta diretta alla tua domanda in realtà è "Non farlo!!!" .
Come ha sottolineato joschi, non c'è motivo per farlo. Ho server Debian in esecuzione che non hanno cancellato un singolo file di registro da anni.
Soluzione 4:
Sto clonando macchine virtuali da un master. Ha perfettamente senso cancellare il registro sul master in modo che quando avvii i cloni non otterrai il registro del master. L'ho fatto in tcsh:
cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
che cancella i log ma conserva i file.
Soluzione 5:
Pulizia di tutti i registri su un sistema Linux senza eliminazione i file:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
Samba (/var/www/samba
) crea nomi di file di registro con indirizzi IP, potresti volerli eliminare:
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done