Recuperar ficheros borrados pero aún abiertos por algun proceso
A todos alguna vez nos ha entrado el panico cuando se llena el disco, haciendo un rm -fr * en la partición donde se guardan los logs para liberar espacio.
Como sabreis, si no se para el proceso que tiene los ficheros abiertos realmente no se borran de disco, por lo que lo siguiente es reiniciar el syslog para que los cierre y se libere el espacio que ocupaban. Si es antes de hacer esto que nos ha entrado el panico por la perdida de algun log importante, aún podemos recuperar estos ficheros.
Primero de todo deberiamos buscar el PID del proceso de syslog:
[root@shuVak ~]# ps -fea | grep syslog | grep -v grep root 2787 1 0 Sep23 ? 00:00:28 syslogd -m 0
Sabiendo el PID podemos consultar en el /proc que descriptores de ficheros esta usando y a que corresponden mediante el comando file:
file /proc/7439/fd/* /proc/2787/fd/0: broken symbolic link to `socket:[3997]' /proc/2787/fd/2: symbolic link to `/var/log/messages' /proc/2787/fd/3: symbolic link to `/var/log/secure' /proc/2787/fd/4: symbolic link to `/var/log/maillog' /proc/2787/fd/5: broken symbolic link to `/var/log/cron' (deleted) /proc/2787/fd/6: symbolic link to `/var/log/spooler' /proc/2787/fd/7: symbolic link to `/var/log/boot.log'
A continuación copiamos los datos:
cat /proc/7439/fd/4 > /var/log/cron
Finalmente ya podemos reiniciar el daemon para que cierre el descriptor viejo y coja el fichero nuevo.
Relacionados
Imprimir

Deja un comentario: