Buscando por la web una forma de recueprar unas cosillas que con la velocidad había eliminado, he encontrado una solución en una web, que ahora mismo no recuerdo, porque solo copié a un txt el ejemplo y la teoría… que se basaba en una recuperación de shorra, y digo esto, porque para que pudiera recuperarse, este archivo, debería estar abierto por alguna aplicación.
Al igual que en Alfresco, los ficheros en linux, están apuntados por un inodo, con la información del fichero (permisos, propietario y su dirección en el disco). El borrado lo que hace es eliminar la referencia entre ambos, pero no el inodo en si mismo - si y solo si, algún otro proceso tiene abierto el fichero, ya que este inodo no se libera hasta que el proceso finaliza su trabajo, como por ejemplo el programa less.
Para poder hacer la prueba podemos crearnos un fichero de texto(test.txt), lo salvamos y en el terminal ejecutamos algún comando que deje el fichero abierto, por ejemplo less test.txt. Ahora abrimos otro terminal y borramos test.txt con la orden rm test.txt. Una vez borrado si probamos con la orden ls test.txt obtendremos el siguiente mensaje de error:
eloy@ubuntuEEEBox:~$ ls test.txt
ls: no se puede acceder a test.txt: No existe el fichero ó directorio
eloy@ubuntuEEEBox:~$
El asunto es que el comando less todavía tiene referenciado el fichero test.txt. Esto podemos verificarlo mediante los siguientes comandos:
> lsof | grep test.txt
less 4607 eloy 4r REG 254,4 21 8880214 /home/juliet/test.txt (deleted)
Las columnas importantes son la segunda, que nos indica el PID del proceso que tiene el fichero abierto (4607), y la cuarta columna, que nos indica el descriptor del fichero (4). En esta situación, si echamos un vistazo en el directorio /proc, podremos encontrar todavía una referencia al inodo, desde la cual podemos restaurar el fichero original:
> ls -l /proc/4607/fd/4
lr-x—— 1 eloy eloy 64 Apr 7 03:19
/proc/4607/fd/4 -> /home/eloy/test.txt (deleted)
> cp /proc/4607/fd/4 test.txt.bk
Nota: no se debe usar el flag -a con el comando cp, esto es debido a que con ese modificador se copiara el enlace simbólico roto, en vez de el fichero que nos interesa.
Ahora ya podemos verificar que la copia se ha realizado correctamente y que volvemos a tener el fichero en su estado actual.
Sé que el autor donde lo encontré, se llama Eloy. Pues gracias Eloy.








Sin comentarios
Post al azar
Deje sus comentario: