centos 100% disco lleno - ¿Cómo eliminar archivos de registro, historial, etc.?

8

mysqld no se iniciará porque el espacio en disco está lleno:

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

corriendo 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 *en /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

en /dev/sda5, hay archivos del sitio web en /var/www.

porque esta es la primera vez, no tengo idea de qué archivos eliminar aparte de mover /var/wwwa otra partición

Y uno más, ¿cuál es la forma correcta de eliminar archivos de registro, historial, etc. /dev/sda5?

kopeklan
fuente

Respuestas:

2

Rápido y sucio: mueve tu /var/wwwhacia /home/www, luego crea un enlace simbólico:

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

A más largo plazo: Tal vez poner /var/wwwy /var/logdirectorios en sus propias particiones dedicadas. Probablemente podría reducir /homey utilizar el espacio liberado para crear particiones adecuadas.

Steven Monday
fuente
2
  1. me gustaría mv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packages o apt-get clean para eliminar cosas de / var / cache
  3. Sí mover / var / www a eg / home
  4. quizás elimine la partición / var.
Erik Johansson
fuente
FWIW: Realmente no me gusta usar la partición cuando no hay un uso real para ellos. Si desea usarlos como límites administrativos, es mejor que tenga LVM / ZFS o algún tipo de forma fácil de extenderlos ...
Erik Johansson
Realmente no me gusta usar la partición también ...
kopeklan
1

¿Cuál es el desglose /var/lib? Si es como mi sistema, ¿la mayoría de eso (digamos 500 MB) está ocupado por /var/lib/mysql?

Todos los demás números parecen bastante normales y razonables, por lo que son conmovedores /var/lib/mysqly /var/wwwson las únicas soluciones realistas a largo plazo.

Para eliminar los archivos de registro antiguos, están siendo rotados sus registros, por ejemplo, ¿Tiene /var/log/messages, /var/log/messages.1, /var/log/messages.2.gz, etc, o tal vez /var/log/messages-20101221, /var/log/messages-20101220.gzetc?

La forma obvia de eliminarlos es por edad, p. Ej.

# find /var/log -type f -mtime +14 -print
# find /var/log -type f -mtime +14 -exec rm '{}' \;

Además, verifique que su configuración de rotación de registros sea la que /etc/logrotate.confdesea. Diría que no debería cambiarlos, ya que no son su principal problema, pero tal vez solo quiera mantener los registros de una semana, en cuyo caso intente algo como esto:

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

Luego hay archivos para cada servicio, por ejemplo, syslog, mysql, apache, etc. para configurar la rotación de registros para cada uno de ellos. En los sistemas Debian y Red Hat, eso ya debería estar configurado para usted.

Si aún no tiene logrotate, entonces es un poco más difícil. Miraría usar grep o tail para guardar las entradas recientes y luego eliminar el archivo y reiniciar syslogd (por ejemplo, service syslogd restarto pkill -HUP syslogd.

Finalmente, un guión que escribí para esta situación es 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
fuente