centos 100% de disco cheio - Como remover arquivos de log, histórico, etc?

8

O mysqld não inicia porque o espaço em disco está cheio:

101221 14:06:50 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
101221 14:06:50 [ERROR] Can't start server: can't create PID file: No space left on device

executando df -h:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  3.2G   12G  23% /
/dev/sda5             4.8G  4.6G     0 100% /var
/dev/sda3             430G  855M  407G   1% /home
/dev/sda1              76M   24M   49M  33% /boot
tmpfs                 956M     0  956M   0% /dev/shm

du -sh *em /var:

12K     account
56M     cache
24K     db
32K     empty
8.0K    games
1.5G    lib
8.0K    local
32K     lock
221M    log
16K     lost+found
0       mail
24K     named
8.0K    nis
8.0K    opt
8.0K    preserve
8.0K    racoon
292K    run
70M     spool
8.0K    tmp
76K     webmin
2.6G    www
20K     yp

em /dev/sda5, há arquivos de site em /var/www.

porque esta é a primeira vez, não tenho idéia de quais arquivos remover além de mudar /var/wwwpara outra partição

E mais uma, qual é a maneira correta de remover arquivos de log, histórico etc. /dev/sda5?

Kopeklan
fonte

Respostas:

2

Rápido e sujo: mova seu /var/wwwpara /home/wwwe faça um link simbólico:

rsync -a /var/www /home &&
rm -r /var/www &&
ln -s /home/www /var/www

Prazo mais longo: talvez coloque seus diretórios /var/wwwe /var/logem suas próprias partições dedicadas. Você provavelmente poderia encolher /homee usar o espaço liberado para criar partições adequadas.

Steven segunda-feira
fonte
2
  1. Eu gostaria mv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packages ou apt-get clean para remover coisas de / var / cache
  3. Sim mova / var / www para eg / home
  4. talvez remova a partição / var ..
Erik Johansson
fonte
FWIW: Eu realmente não gosto de usar partições quando não há um uso real para elas. Se você quiser usá-los como limites administrativos, é melhor você ter o LVM / ZFS ou algum tipo de maneira fácil de estendê-los.
Erik Johansson
Eu realmente não gosto de usar partição muito ...
kopeklan
1

Qual é o colapso /var/lib? Se for como o meu sistema, a maior parte (por exemplo, 500 MB) é ocupada por /var/lib/mysql?

Todos os outros números parecem bastante normais e razoáveis, tão comoventes /var/lib/mysqle /var/wwwsão as únicas soluções realistas de longo prazo.

Para remover arquivos de log antigos, são seus registros a ser rodado, 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ê-las é 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 as configurações de rotação do log /etc/logrotate.confsão o que você deseja. Eu diria que você não deve alterá-los, pois esse não é o seu principal problema, mas talvez você queira apenas manter os registros de uma semana; nesse caso, tente algo como isto:

daily
rotate 7
create
compress
include /etc/logrotate.d

Depois, existem arquivos para cada serviço, por exemplo, syslog, mysql, apache, etc. para configurar a rotação do log para cada um deles. Nos sistemas Debian e Red Hat, isso já deve estar configurado para você.

Se você ainda não possui logrotate, é um pouco mais difícil. Eu usaria grep ou tail para salvar as entradas recentes, excluir o arquivo e reiniciar o syslogd (por exemplo, service syslogd restartou pkill -HUP syslogd.

Finalmente, um roteiro que escrevi 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
Mikel
fonte