GNU/Linux >> Tutoriales Linux >  >> Linux

Montaje SSHFS que sobrevive a la desconexión

Solución 1:

Usa -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

La combinación ServerAliveInterval=15,ServerAliveCountMax=3 hace que los errores de E/S aparezcan después de un minuto de interrupción de la red. Esto es importante pero en gran parte indocumentado. Si ServerAliveInterval la opción se deja por defecto (por lo que sin la comprobación de actividad), los procesos que experimentan bloqueos de E/S parecen dormir indefinidamente, incluso después de que sshfs obtiene reconnect ed. Considero esto un comportamiento inútil.

En otras palabras, lo que sucede en -o reconnect sin asignar ServerAliveInterval es que cualquier E/S tendrá éxito o bloqueará la aplicación indefinidamente si el ssh se vuelve a conectar por debajo. Como resultado, una aplicación típica se bloquea por completo. Si desea permitir que I/O devuelva un error y reanude la aplicación, necesita ServerAliveInterval=1 o mayor.

El ServerAliveCountMax=3 es el predeterminado de todos modos, pero me gusta especificarlo para facilitar la lectura.

Solución 2:

Gracias por los consejos de autossh y autofs.

Sin embargo, para mi propósito directo, encontré una solución mucho más simple que no estaba tan bien documentada:

sshfs -o reconnect server:/path/to/mount

Solución 3:

Autossh vuelve a conectar automáticamente las sesiones de ssh cuando nota que ssh ha muerto o ha dejado de pasar tráfico. Dado que solo es ssh automatizado, funcionará desde diferentes IP y desde la suspensión (incluso si la computadora portátil se activa en una LAN diferente).

Solución 4:

Una cosa que podría hacer es montar sus sistemas de archivos a través de autofs. Autofs es una herramienta que montará un sistema de archivos cuando use algo en el directorio en el que se montará el sistema de archivos. Cuando detecta actividad, el sistema de archivos se monta. Cuando no sucede nada en el sistema de archivos, se desmonta.

Aquí hay un cómo que encontré en Google para lograr esto, allí hay varios otros.

Solución 5:

Sospecho que no, porque incluso si puede configurar su cliente SSH para que no corte la conexión, el servidor podría estar configurado para hacerlo después de un período específico de inactividad, y no podría anularlo. Incluso si pudiera, si nunca reanuda la conexión, el servidor quedará colgado y, con el tiempo, eso podría conducir a una pérdida significativa de recursos del servidor.

Creo que una técnica mejor es desmontar el sistema de archivos antes de suspender la computadora y volver a montarlo cuando la computadora se active nuevamente. El mecanismo para hacerlo puede depender exactamente de cómo suspenda su computadora:uso el kernel de Tuxonice y para hacer algo como esto, tengo una directiva como

Unmount /mnt/sshfs

en /etc/hibernate/common.conf .


Linux
  1. SSHFS? ¿Qué es eso y cómo lo uso?

  2. SSHFS (Secure SHell FileSystem) – Monte de forma segura un sistema de archivos remoto a través de ssh

  3. Alternativa a la línea de comandos SSH de Ubuntu

  4. ¿Cómo saber si he iniciado sesión a través de SSH?

  5. Montar una partición ext4 en Mac OS X

SSHFS:Cómo montar sistemas de archivos remotos a través de SSH

Cómo usar SSHFS para montar directorios remotos sobre SSH

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Montar una carpeta remota con sshfs

Cómo usar el montaje SSHFS con directorios remotos a través de SSH

No se puede montar el recurso compartido de Windows en ubuntu