Řešení 1:
Místo mazání souborů byste je měli otočit, např. G. pomocí logrotate
.
Nikdy nevíte, kdy budete záznamy z minulosti skutečně potřebovat, proto je lepší je archivovat (do přiměřeného věku, např. 3 měsíců).
logrotate
může komprimovat vaše staré soubory protokolu, aby nezabíraly mnoho místa na disku.
Řešení 2:
Smazat všechny soubory:
find /var/log -type f -delete
Smazat všechny .gz a otočené soubory
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
Zkuste spustit příkaz bez "-delete", abyste to otestovali.
Řešení 3:
Pokud smažete vše v /var/log, s největší pravděpodobností skončíte se spoustou chybových zpráv ve velmi krátkém čase, protože tam jsou složky, u kterých se očekává, že existují (např. exim4, apache2, apt, cups, mysql, samba a více). Navíc:existují některé služby nebo aplikace, které nevytvářejí své protokolové soubory, pokud neexistují. Očekávají, že bude přítomen alespoň prázdný soubor. Takže přímá odpověď na vaši otázku je ve skutečnosti "Tohle nedělej!!!" .
Jak poznamenal joschi, není k tomu žádný důvod. Mám spuštěné servery debianu, na kterých nebyl po léta smazán jediný soubor protokolu.
Řešení 4:
Klonuji virtuální stroje z mastera. Je naprostý smysl vymazat protokol na hlavním serveru, takže při spouštění klonů nezískáte protokol hlavního serveru. Udělal jsem to v tcsh:
cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
který vymaže protokoly, ale zachová soubory.
Řešení 5:
Čištění všech protokolů v systému Linux bez smazání soubory:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
Samba (/var/www/samba
) vytváří názvy souborů protokolu s IP adresami, možná je budete chtít smazat:
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done