
Я установил sshfs на Ubuntu 12.04 и пытаюсь подключиться к нескольким удаленным серверам.
Сначала монтирование кажется успешным. Иногда Gnome даже подхватывает его и отображает окно «Найдено новое устройство» в нижней части экрана. Но с этого момента мало что работает. Или, по крайней мере, больше не работает. Первые пару раз, когда я подключался, все работало нормально, и мне удалось передать некоторые файлы. Затем я отключился с помощью, fusermount -u <folder>
и после повторного подключения немного позже начались проблемы.
Теперь после выполнения sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>
, когда я меняю каталог на точку монтирования, оболочка просто зависает. Странно, ls -al <folder>
работает, когда выводит только корень удаленной системы, но ничего больше. Также все файловые проводники, которые я пробовал, зависают так же, как cd <folder>
.
Мне показалось, что в моей системе висит какой-то зомби-поток или что-то в этом роде, поскольку в первый раз все заработало, поэтому я попробовал перезагрузить систему, но безуспешно.
sshfs -V
дает это:
SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
решение1
Если вы запустили sshfs с помощью -o reconnect
, завершение зависшего процесса SSH заставит его переподключиться.
Сначала найдите соответствующий SSH, например:
ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...
Вы можете отличить его по отличительному набору опций и хосту, к которому вы подключались по sshfs. Затем убейте его, обычного SIGTERM должно быть достаточно:
kill 9644
Это должно заставить SSHFS начать новый сеанс SSH, и смонтированная файловая система снова станет отзывчивой, а все зависшие на ней процессы продолжат работу, как будто ничего не произошло.
решение2
Используйте sshfs -o reconnect,ServerAliveInterval=1 your-remote-ssh: your-local-folder
для ssh
отправки сообщения на сервер каждую секунду. Это позволит sshfs
быстро обнаружить отключение и автоматически переподключиться, чтобы избежать возможных зависаний и заморозок.
решение3
Это старый пост, и я не предлагаю окончательного решения, но, думаю, у меня была та же проблема (на Ubuntu 14.04), и в моем случае ленивое размонтирование и повторное монтирование сработало (хотя это немного раздражает):
fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder
Подозреваю, вы просто просматривали кэшированные результаты с помощью ls -al <folder>
.
решение4
У меня была та же проблема — cd
процесс занял время, почти приближающееся к событию Большого взрыва.
Проблема была очень простой - я использовал расширения Git для оболочки, и она работала git status
под капотом. Это означает, что Git должен был сначала загрузить много данных.
Переход на оболочку «без расширений» решил проблемы с cd
.