Entradas Aleatorias

jueves, 10 de septiembre de 2009

Linux: Recuperar archivos eliminados en Linux con lsof

Una de las cosas más deseadas que usted puede hacer con lsof es tan general como versátil, aplicación que le permite recuperar un archivo que acabas de suprimir accidentalmente. Un archivo en linux es un indicador inode, que contiene los datos del archivo (permisos, dueño y a donde reside realmente en el disco). La supresión del archivo quita el acoplamiento, pero no el inode en sí mismo - si otro proceso tiene abierto el inodo no es liberado para escribirlo hasta que el proceso lo termine.

Para probar esto, cree un archivo de texto de prueba, y guardarlo a continuación, escriba less testing.txt. Abra otra ventana de terminal y escriba rm testing.txt. Si intenta borrar testing.txt ¿Es usted obtendrá un mensaje de error. Pero! less todavía tiene una referencia al archivo. Así:

> lsof | grep testing.txt

less 4607 juliet 4r REG 254,4 21 8880214 /home/juliet/testing.txt (deleted)



También puedes probar a poner lsof |grep deleted
* Recuerda debes de haberlo borrado hace muy poco.

Las columnas importantes son las segundas, que le da el PID del proceso que ha abierto el archivo (4607), y el cuarto, que le da el descriptor de archivo (4). Ahora, vamos a buscar en /proc, donde todavía habrá una referencia al inodo, desde donde se puede copiar el archivo de salida:

> ls -l /proc/4607/fd/4
lr-x------ 1 juliet juliet 64 Apr 7 03:19 /proc/4607/fd/4 -> /home/juliet/testing.txt (deleted)
> cp /proc/4607/fd/4 testing.txt.bk
Nota: no utilice el flag -a con cp, como copiaría un (roto) enlace simbólico, en lugar del contenido real del archivo.

Ahora comprobamos el archivo para asegurarnos de que tenga lo que usted piensa que tiene, y ya está!

Fuente: Linux Party

Artículos relacionados


Bookmark and Share

0 comentaris:

Publicar un comentario

Clicky Web Analytics
Suscríbete al Feed