Як (чисто) демонтувати sshfs при встановленні на точку монтажу NFS?


15

У мого співробітника є настільний комп'ютер із /homeспільним нашим файловим сервером. Я розробив сценарій Perl для sshfs-монтажування певного каталогу на іншому хості SSH, який прекрасно працює на моєму ноутбуці.

На своєму комп’ютері сценарій не зможе демонтувати sshfsкінець і залишає місце нечистістю. Я не знайшов іншого способу відновити точку моменту, крім перезавантаження. Після деяких тестувань я виявив, що різниця між нашими налаштуваннями полягає в тому, що він /homeзнаходиться на NFS. В його роботі /tmpце працює бездоганно.

Після монтажу під час роботи сценарію все добре. Але при знищенні sshfsпроцесу він перераховується як <defunc>до psтих пір, поки не завершиться батьківський процес (скрипт Perl). Під час запуску необробленої sshfsкоманди на оболонці проблема все ще виникає.

ls -dlВихід для MOUNTPOINT виглядає наступним чином (як це згадав - у мене немає ніякої реальної копії виходу оболонки під рукою):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(лише знаки запитання для більшості інформації, принаймні всіх реквізитів дозволу)

Монтаж sshfs все ще перелічено, mountале відключена операція не вдається, якщо дозвіл помилки відмовлено, навіть коли це робиться root.

Я шукав Google, але знайшов лише багато порівнянь між sshfs та NFS для роботи мережевих файлових систем. Як я можу безпечно виконати монтування / відключення sshfs у каталозі NFS?

Відповіді:


38

Ви маєте змогу вимкнути частку sshfs, виконавши:

 fusermount -u /path/to/sshfs/share

Я спробував це, але отримав відмову у дозволі . Звичайно звичайний umountповинен вийти з ладу при запуску як позакористувацький користувач.
Даніель Бьомер

Швидше за все, причина, яку ви не можете відключити (будь-яким методом), полягає в тому, що його домашній дір встановлений з NFS, де він експортується з root_squashможливістю. Таким чином, корінь не має повноважень у своєму домашньому режимі. Ви можете вимкнути, root_squashале це, мабуть, безпечніше просто встановити десь в іншому місці.
JFlo

2
Я щоразу забуваю, що umountабо fusermount -uне працює, коли каталог десь використовується. Тож cdвийдіть із каталогу перед тим, як користуватися fusermount -uабо використовуватиlsof /my/local/mountpoint
eli

16

Просто вбити процес за допомогою pkill, а потім відключити змонтований шлях до папки.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

Іноді мені доводиться робити "sudo umount -f" або "sudo umount -l" замість umount.
лютого

0
sudo diskutil umount force ~/mount/

Схоже, ця команда працює в ОС X.


6
Чи можете ви розширити свою відповідь, щоб пояснити, що робить цей код і як він вирішує проблему? Неясний код не рекомендує , оскільки він не вчить рішення. Дякую. з черги на огляд
fixer1234

Це для OS X. Питання, задане для Linux.
Duncan X Simpson
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.