J'ai plusieurs répertoires montés via sshfs. J'obtiens parfois des déconnexions du serveur (non configurable par moi). Je monte généralement les répertoires comme celui-ci
sshfs [email protected]:/home/user /mnt/example
Lorsqu'un serveur se déconnecte, le sous-système sshfs ne mount/free le répertoire mais le verrouille à la place inaccessible. Le montage est toujours visible lorsque vous tapez mount
. Quand je tape
ls /mnt/example
le processus est verrouillé (également Ctrl+c n'aide pas). Je fais donc
Sudo umount -l /mnt/example
# find pid of corresponding process:
ps aux | grep example.com
kill -9 <pid of locked sshfs process>
Y a-t-il une meilleure façon de gérer cela? Évidemment sshfs devrait faire le mount et nettoyer ... Idéalement, il se reconnecterait automatiquement.
Vous pouvez exécuter sshfs avec l'option "reconnecter". Nous utilisons sshfs avec PAM/automount pour partager les fichiers du serveur pour chaque poste de travail de notre réseau. Nous utilisons -o reconnect comme paramètre pour sshfs, principalement parce que nos utilisateurs ont suspendu leurs ordinateurs et que sshfs ne se reconnecterait pas (ou ne répondrait pas, ou quoi que ce soit).
Par exemple:
sshfs [email protected]:/home/mvaldez/REMOTE /home/mvaldez/RemoteDocs -o reconnect,idmap=user,password_stdin,dev,suid
Juste une note, si l'ordinateur distant est vraiment en panne, sshfs peut ne plus répondre pendant longtemps.
Cela peut être contourné en diminuant le délai d'expiration. Ajoutez ce qui suit à $HOME/.ssh/config
ou /etc/ssh/ssh_config
:
ServerAliveInterval 15
ServerAliveCountMax 3
Il en résulte un délai d'attente de 45 secondes.
J'ai un serveur que j'utilise pour le stockage et pour un manque d'espace où je vis, je le garde dans un autre endroit. Afin d'amener les fichiers sur mon réseau, j'utilise un Raspberry Pi qui monte les fichiers depuis le serveur à l'aide de sshfs.
Récemment, j'ai dû passer à jaspie raspbian en raison d'une panne de courant et j'ai réalisé que sshfs devenait sérieusement instable. Les dossiers seraient correctement montés mais après un certain temps, je ne serais pas en mesure de me connecter à eux et le Raspberry Pi se figerait si je voulais lister le contenu des montages.
J'ai essayé:
mais pas de dés! Jusqu'à ce que je modifie le fichier fstab comme suit:
sshfs#user@server:/remote/folder /local/mount/dir Fuse IdentityFile=sshkeyfile,Port=XXX,uid=1000,gid=1000,allow_other,_netdev,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto 0 0
Et il fonctionne! Plus de déconnexions! Il me semble que sshfs ne lit pas le fichier de configuration ssh pour une raison quelconque et les signaux de maintien en vie n'ont jamais été envoyés.
Cela ressemble à un travail pour les autofs. Il est plutôt habile pour gérer les montages réseau de différents types (nfs, samba, sshfs, vous l'appelez) et remarquer quand ces choses doivent être remontées. Il peut également se charger de les démonter après des périodes d'inactivité et de les monter lors d'une demande de système de fichiers.
S'il y a encore des gens qui rencontrent ce problème, je n'ai toujours pas pu le résoudre. J'ai trouvé une solution de contournement.
Le script Ruby a fait l'affaire. Il crée un dossier appelé "keepalive" encore et encore. Continuez à l'exécuter jusqu'à l'infini.
$i =1
$num =0
begin
puts("Inside the loop i = #$i" )
$i +=1
puts 'creating obj'
system 'mkdir /{yourmountpoint}/keepalive'
sleep 5
puts 'we did it, it should be still alive'
end while $i > $num
Je ne sais pas pourquoi cela fonctionne. Mais cela semble résoudre mon problème où je suis inactif pendant une minute et tout se fige. Il essaie juste de créer un dossier au point de montage et cela semble l'empêcher de déconnecter et de figer tout en quelque sorte.