Wie vermeidet man das Einfrieren von SSHFS?

Wie vermeidet man das Einfrieren von SSHFS?

Ich habe sshfs auf Ubuntu 12.04 installiert und versuche, eine Verbindung zu einigen Remote-Servern herzustellen.

Zunächst scheint die Einbindung erfolgreich zu sein. Manchmal erkennt Gnome es sogar und zeigt unten auf dem Bildschirm das Feld „Neues Gerät gefunden“ an. Aber von da an funktioniert nicht mehr viel. Oder zumindest nicht mehr. Die ersten paar Male, als ich mich verbunden habe, schien es gut zu funktionieren und ich konnte einige Dateien übertragen. Dann habe ich die Verbindung getrennt fusermount -u <folder>und als ich etwas später die Verbindung wieder hergestellt hatte, fingen die Probleme an.

Wenn ich jetzt nach der Ausführung sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>das Verzeichnis zum Einhängepunkt ändere, friert die Shell einfach ein. Seltsamerweise ls -al <folder>funktioniert es, wenn nur das Stammverzeichnis des Remote-Systems aufgelistet wird, aber sonst nichts. Außerdem friert jeder Datei-Explorer, den ich ausprobiert habe, genauso ein wie cd <folder>.

Da es beim ersten Mal funktionierte, schien es mir, als ob eine Art Zombie-Thread oder etwas Ähnliches auf meinem System herumhing. Ich habe also versucht, das System neu zu starten, aber ohne Erfolg.

sshfs -Vergibt folgendes:

SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12

Antwort1

Wenn Sie sshfs mit gestartet haben -o reconnect, wird durch das Beenden des hängenden SSH-Prozesses die Verbindung wiederhergestellt.

Suchen Sie zunächst nach dem passenden SSH, zum Beispiel:

ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...

Sie können es anhand der unterschiedlichen Optionen und des Hosts unterscheiden, mit dem Sie SSHFS verbunden haben. Beenden Sie es dann, normales SIGTERM sollte ausreichen:

kill 9644

Dadurch sollte SSHFS eine neue SSH-Sitzung starten, das gemountete Dateisystem sollte wieder reagieren und alle daran hängenden Prozesse sollten weiterlaufen, als wäre nichts passiert.

Antwort2

Verwenden Sie diese sshfs -o reconnect,ServerAliveInterval=1 your-remote-ssh: your-local-folderOption, um sshjede Sekunde eine Nachricht an den Server zu senden. Dadurch können sshfsTrennungen schnell erkannt und die Verbindung automatisch wiederhergestellt werden, um mögliche Hänger und Einfrieren zu vermeiden.

Antwort3

Dies ist ein alter Beitrag und ich biete keine endgültige Lösung dafür an, aber ich glaube, ich hatte dasselbe Problem (unter Ubuntu 14.04) und in meinem Fall funktioniert das verzögerte Unmounten und erneute Mounten (obwohl es ein bisschen nervig ist):

fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder

Ich vermute, Sie haben sich lediglich die zwischengespeicherten Ergebnisse mit angesehen ls -al <folder>.

Antwort4

Ich hatte das gleiche Problem – cdes dauerte fast so lange wie das Big-Boom-Ereignis.

Das Problem war ganz einfach: Ich habe Git-Erweiterungen für die Shell verwendet und sie liefen git statusim Hintergrund. Das bedeutet, dass Git zuerst viele Daten herunterladen musste.

Durch die Umstellung auf die Shell ohne Erweiterung wurden die Probleme mit gelöst cd.

verwandte Informationen