“Recuperando” ficheros con lsof

Navegando por ahí me encontré unas líneas sobre como recuperar ficheros que –por error– se han borrado.

Si alguna vez te has equivocado (sic) y has borrado los logs de un servidor o las fotos de tu novia del equipo linux, hay forma de recuperarlas sin mayor problema ni utilizar herramientas un tanto toscas para un usuario poco habituado a linux.

Si ejecutamos en un terminal;

 

echo probando > basura
# less basura

Dejamos el less con el archivo abierto. Entonces en otro terminal:

rm basura
# ls basura
/bin/ls: basura: No such file or directory
# lsof |grep basura
less      14481       usuario    4r      REG        8,1          9    2627682 /tmp/basura (deleted)
# file /proc/14481/fd/4
/proc/14481/fd/4: broken symbolic link to `/tmp/basura (deleted)'
# cat /proc/14481/fd/4
probando

El primer numero es el PID. El segundo el numero de descriptor de fichero donde ese proceso lo tiene abierto. Y ahí esta “recuperado” (entre comillas porque realmente nunca se borro del disco).

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s