web-dev-qa-db-fra.com

Comment puis-je m'assurer que mes disques montés sshfs restent connectés autant que possible?

J'ai essayé de faire en sorte que cela fonctionne pour toujours et à jamais et c'est juste au-delà de mes capacités maintenant. J'ai lu à peu près tout ce que je peux à ce sujet ... et pourtant je ne peux pas résoudre le problème. Voici la petite histoire. J'ai besoin de monter des lecteurs distants sur mon serveur local. Je peux faire fonctionner ça sans problème. J'exécute les commandes suivantes:

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_1 ~/folder_1
sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_2 ~/folder_2
sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_3 ~/folder_3

Bingo. Fonctionne comme par magie.

TOUTEFOIS:

Le lecteur distant se trouve sur un serveur que je loue et est partagé. Donc, parfois, il est réinitialisé et le montage tombe. Ou parfois, je réinitialise mon serveur domestique et le montage tombe. Ou mon Internet s'arrête une seconde (merci Comcast) ... ou pour une raison quelconque, la connexion n'est tout simplement pas comme, solide comme le roc tout le temps. Ça va, je peux comprendre que ce n'est pas un moyen idéal de transférer des informations parfois. Cependant, lorsque le support est opérationnel, il est parfait pour mes besoins.

Alors ... que puis-je faire pour m'assurer que mon serveur garde autant que possible ces répertoires distants montés sshfs connectés? J'ai actuellement ce système laid où j'utilise tasker sur mon téléphone et une application ssh avec des extraits pour s'exécuter automatiquement à intervalles définis et me connecter à mon serveur domestique à distance, ouvrir l'écran en cours d'exécution (écran -R), exécuter les commandes, puis se déconnecter .

J'ai essayé de créer un script bash et de l'exécuter avec crontab, mais pour des raisons que je ne comprends pas, cela ne fonctionne pas (alerte de déclenchement de script noob):

#!/bin/sh

screen -R

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_1 ~/folder_1;

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_2 ~/folder_2;

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_3 ~/folder_3;

screen -D

J'ai essayé d'ajouter des choses à fstab mais honnêtement, j'ai l'impression de deviner les choses et je suis vraiment trop stupide pour que cela fonctionne ...

Toute aide serait appréciée. Je suis au bout de ma corde.

1
sfurules

Vous pouvez essayer de fournir l'option reconnect à sshfs (c'est si vous ne l'avez pas déjà fait!)

sshfs -o reconnect -o idmap=user ...

Fait intéressant, la page de manuel sshfs est assez peu communicative à propos de cette option, mais elle semble faire ce que vous recherchez. J'ai moi-même un lecteur distant monté avec sshfs sur un Mac, un ordinateur portable Linux et un téléphone Android, et la connexion semble assez robuste sur tous --- ce sera assez fiable (en aucun cas toujours mais je dirais plus de 90% des cas) survivent à la perte de connexion, suspendent/hibernent etc.

J'espère que cela t'aides!

1
user420317