files – Eliminando un archivo vagabundo veo .nfs0000000000b869e300000001

Pregunta:

Eliminé un archivo y ahora veo:

$ ls
total 64
-rw-rw-r-- 1 502 17229 Sep 17 16:42 page_object_methods.rb
drwxrwxr-x 7 502   238 Sep 18 18:41 ../
-rw-rw-r-- 1 502 18437 Sep 18 18:41 new_page_object_methods.rb
-rw-r--r-- 1 502 16384 Sep 18 18:42 .nfs0000000000b869e300000001
drwxrwxr-x 5 502   170 Sep 21 13:48 ./
13:48:11 *vagrant* ubuntu-14 selenium_rspec_conversion

y si trato de eliminarlo:

$ rm .nfs0000000000b869e300000001
rm: cannot remove ‘.nfs0000000000b869e300000001’: Device or resource busy

¿Qué indica esto? Qué tengo que hacer

Respuesta:

Un archivo se puede eliminar mientras está abierto mediante un proceso. Cuando esto sucede, la entrada del directorio se elimina, pero el archivo en sí (el inodo y el contenido) se quedan atrás; el archivo solo se elimina realmente cuando no tiene más enlaces y no está abierto por ningún proceso.

NFS es un protocolo sin estado: las operaciones se pueden realizar independientemente de las operaciones anteriores. Incluso es posible que el servidor se reinicie y, una vez que vuelva a estar en línea, los clientes seguirán accediendo a los archivos como antes. Para que esto funcione, los archivos deben ser designados por sus nombres, no por un manejador obtenido al abrir el archivo (que el servidor olvidaría cuando se reinicia).

Ponga los dos juntos: ¿qué sucede cuando un cliente abre un archivo y lo elimina? El archivo debe seguir teniendo nombre, de modo que el cliente que lo tiene abierto aún pueda acceder a él. Pero cuando se elimina un archivo, se espera que no exista más archivo con ese nombre después. Entonces, los servidores NFS convierten la eliminación de un archivo abierto en un cambio de nombre: el archivo se renombra a .nfs… ( .nfs seguido de una cadena de letras y dígitos).

No puede eliminar estos archivos (si lo intenta, todo lo que sucede es que aparece un nuevo .nfs… con un sufijo diferente). Eventualmente desaparecerán cuando el cliente que tiene el archivo abierto lo cierre. (Si el cliente desaparece antes de cerrar el archivo, es posible que el servidor tarde un poco en darse cuenta).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım