GNU/Linux >> Belajar Linux >  >> Linux

Mount SSHFS yang selamat dari pemutusan

Solusi 1:

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

Kombinasi ServerAliveInterval=15,ServerAliveCountMax=3 menyebabkan kesalahan I/O muncul setelah satu menit pemadaman jaringan. Ini penting tetapi sebagian besar tidak didokumentasikan. Jika ServerAliveInterval opsi dibiarkan default (jadi tanpa centang hidup), proses yang mengalami I/O hang sepertinya tidur tanpa batas waktu, bahkan setelah sshfs mendapatkan reconnect 'ed. Saya menganggap ini sebagai perilaku yang tidak berguna.

Dengan kata lain apa yang terjadi pada -o reconnect tanpa menugaskan ServerAliveInterval apakah setiap I/O akan berhasil, atau menggantung aplikasi tanpa batas waktu jika ssh terhubung kembali di bawahnya. Akibatnya, aplikasi tipikal menjadi hang sepenuhnya. Jika Anda ingin mengizinkan I/O mengembalikan kesalahan dan melanjutkan aplikasi, Anda memerlukan ServerAliveInterval=1 atau lebih besar.

ServerAliveCountMax=3 adalah defaultnya, tapi saya ingin menentukannya agar mudah dibaca.

Solusi 2:

Terima kasih atas tips autossh dan autofs.

Namun, untuk tujuan langsung saya, saya menemukan solusi yang jauh lebih sederhana yang tidak didokumentasikan dengan baik:

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

Solusi 3:

Autossh secara otomatis menghubungkan kembali sesi ssh ketika pemberitahuan ssh telah mati atau berhenti melewati lalu lintas. Karena ini hanya ssh otomatis, ini akan berfungsi dari IP yang berbeda dan dari penangguhan (bahkan jika laptop aktif di lan yang berbeda).

Solusi 4:

Satu hal yang dapat Anda lakukan adalah memasang sistem file Anda melalui autofs. Autofs adalah alat yang akan memasang sistem file ketika Anda menggunakan sesuatu di direktori tempat sistem file akan dipasang. Ketika mendeteksi aktivitas, sistem file dipasang. Ketika tidak ada yang terjadi pada sistem file, itu di-unmount.

Berikut adalah cara yang saya temukan di google untuk menyelesaikan ini, di mana ada beberapa lainnya.

Solusi 5:

Saya menduga tidak ada, karena bahkan jika Anda dapat mengonfigurasi klien SSH Anda untuk tidak memutuskan koneksi, server mungkin dikonfigurasi untuk melakukannya setelah periode tidak aktif tertentu, dan Anda tidak akan dapat menimpanya. Bahkan jika Anda bisa, jika Anda tidak pernah melanjutkan koneksi, server akan dibiarkan macet, dan dari waktu ke waktu hal itu dapat menyebabkan pemborosan sumber daya server yang signifikan.

Teknik yang lebih baik, menurut saya, adalah meng-unmount sistem file sebelum menangguhkan komputer Anda dan memasangnya kembali saat komputer bangun kembali. Mekanisme untuk melakukannya mungkin bergantung pada bagaimana Anda menangguhkan komputer Anda - saya menggunakan kernel tuxonice dan untuk melakukan sesuatu seperti ini saya memiliki arahan seperti

Unmount /mnt/sshfs

di /etc/hibernate/common.conf .


Linux
  1. Alternatif untuk baris perintah SSH dari Ubuntu

  2. Cegah penulisan ke titik pemasangan sshfs yang tidak terpasang

  3. Pasang dengan sshfs dan tulis izin file

  1. SSH - Cara memasukkan perintah -t di file ~/.ssh/config

  2. Izinkan SFTP tetapi larang SSH?

  3. Tidak dapat memasang windows share di ubuntu

  1. SSHFS? Apa itu dan bagaimana cara menggunakannya?

  2. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  3. SSHFS (Secure SHell FileSystem) – Pasang sistem file jarak jauh dengan aman melalui ssh