удалил бродячий файл и теперь вижу .nfs0000000000b869e300000001?

Я написал файл, и теперь вижу:

$ l 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 

и если я попытаюсь удалить его …

 $ rm .nfs0000000000b869e300000001 rm: cannot remove '.nfs0000000000b869e300000001': Device or resource busy 

Что это значит? Что мне делать

3 Solutions collect form web for “удалил бродячий файл и теперь вижу .nfs0000000000b869e300000001?”

Файл может быть удален, пока он открыт процессом. Когда это происходит, запись в каталоге удаляется, но сам файл (индекс и содержимое) остаются позади; файл действительно удаляется только тогда, когда у него больше нет ссылок, и он не открыт никаким процессом.

NFS – это протокол без состояния: операции могут выполняться независимо от предыдущих операций. Возможно, сервер перезагрузится, и как только он снова появится в сети, клиенты будут продолжать доступ к файлам, как и раньше. Для того, чтобы это сработало, файлы должны быть обозначены их именами, а не обработаны, полученные путем открытия файла (который сервер забыл при перезагрузке).

Разместите два вместе: что происходит, когда файл открывается клиентом и удаляется? Файл должен содержать имя, чтобы клиент, у которого он открыт, все равно мог получить к нему доступ. Но когда файл удаляется, ожидается, что после этого больше нет файла с таким именем. Таким образом, серверы NFS превращают удаление открытого файла в переименование: файл переименовывается в .nfs… ( .nfs за которым следует строка букв и цифр).

Вы не можете удалить эти файлы (если вы попытаетесь, все, что происходит, это то, что появляется новый .nfs… с другим суффиксом). В конечном итоге они уйдут, когда клиент, у которого открыт файл, закрывает его. (Если клиент исчезает перед закрытием файла, это может занять некоторое время, пока сервер не заметит.)

Некоторые другие процессы, вероятно, все еще используют файл (то есть имеют открытую дескриптор файла). Либо проигнорируйте файл, либо используйте lsof или подобное, чтобы попытаться найти, какой процесс открыл этот файл (или перезагрузите все!).

Поскольку NFS является «без гражданства», должен быть способ эмулировать метод UNIX для открытия файла, а затем удалить его, сохраняя открытую дескриптор файла.

Любая операция NFS-файла вызывает цепочку:

open(); seek-last-off(); doit(); close();

для запуска, и именно по этой причине NFS выживает при перезагрузке сервера.

После завершения процесса в клиенте, который старый файл открывается, файл исчезнет.

Правильно реализованные файловые серверчики будут запускать скрипт каждую ночь, которая удаляет все такие файлы, которые старше недели. Причина в том, что если клиент перезагрузится, удерживая такой файл, файл останется навсегда.

  • Как ввести пароль для нескольких окон?
  • Собственность в общей папке NFS не изменяется в гостевой ОС в Vagrant
  • Vagrant: возможно ли использовать Vagrant с VMWare в качестве поставщика без оплаты?
  • Запуск сценария оболочки с бродячим обеспечением
  • Vagrant ssh запросить пароль
  • Утилиты VMWare останавливаются Работа над dist-upgrade
  • Как печатать временную метку rsync vagrant и файлы?
  • Как получить поддержку буфера обмена на сервере Linux без X11
  • локальные сценарии выключения (do's and do not)
  • Как запустить Vagrant в качестве обычного пользователя в Fedora?
  • компиляция оболочки nginx не выполняется
  • Linux и Unix - лучшая ОС в мире.