Qual é a divisão em /var/lib
? Se for como o meu sistema, a maior parte (digamos 500 MB) é ocupada por /var/lib/mysql
?
Os outros números parecem bastante normais e razoáveis, por isso mover /var/lib/mysql
e /var/www
são as únicas soluções realistas a longo prazo.
Para remover arquivos de log antigos, seus registros estão sendo rotacionados, por exemplo, você tem /var/log/messages
, /var/log/messages.1
, /var/log/messages.2.gz
, etc, ou talvez /var/log/messages-20101221
, /var/log/messages-20101220.gz
, etc?
A maneira óbvia de removê-los é por idade, por exemplo
# find /var/log -type f -mtime +14 -print
# find /var/log -type f -mtime +14 -exec rm '{}' \;
Além disso, verifique se suas configurações de logrotate em /etc/logrotate.conf
são o que você deseja. Eu diria que você não deve mudá-los, já que eles não são o seu principal problema, mas talvez você só queira manter os registros de uma semana, caso em que tente algo assim:
daily
rotate 7
create
compress
include /etc/logrotate.d
Depois, há arquivos para cada serviço, por exemplo, syslog, mysql, apache, etc para configurar a rotação de log para cada um deles. Nos sistemas Debian e Red Hat, isso já deve estar configurado para você.
Se você ainda não tem logrotate, então é um pouco mais difícil. Eu olharia para o grep ou tail para salvar as entradas recentes e, em seguida, excluir o arquivo e reiniciar o syslogd (por exemplo, service syslogd restart
ou pkill -HUP syslogd
.
Por fim, um script que escrevi exatamente para essa situação é diskuse
.
# test -d ~/bin || mkdir ~/bin
# svn cat http://svn.mikelward.com/svn/scripts/diskuse > ~/bin/diskuse
# chmod +x ~/bin/diskuse
# ~/bin/diskuse -A /var > ~/biggest-files-in-var.txt
# head ~/biggest-files-in-var.txt
# ~/bin/diskuse -T -A /var > ~/biggest-dirs-in-var.txt
# head ~/biggest-dirs-in-var.txt
# ~/bin/diskuse -a 1d /var > ~/biggest-files-in-var-that-changed-today.txt
# head ~/biggest-files-in-var-that-changed-today.txt