Linux
在斷開連接後仍然存在的 SSHFS 掛載
我正在使用從筆記型電腦到中央伺服器的SSHFS掛載。
顯然,SSHFS 掛載在較長時間斷開後(例如在掛起期間)被破壞,導致底層 SSH 連接超時。
有沒有辦法讓 SSHFS 掛載在長期斷開連接(> 5 分鐘)甚至使用不同 IP 的重新撥號中倖存下來?
採用
-o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
這種組合
ServerAliveInterval=15,ServerAliveCountMax=3
會導致 I/O 錯誤在網路中斷一分鐘後彈出。這很重要,但在很大程度上沒有記錄。如果ServerAliveInterval
選項預設保留(因此沒有活動檢查),經歷 I/O 掛起的程序似乎無限期地休眠,即使在 sshfs 被reconnect
‘ed 之後也是如此。我認為這是一種無用的行為。換句話說,
-o reconnect
如果沒有分配ServerAliveInterval
,任何 I/O 要麼成功,要麼如果 ssh 在下面重新連接,則無限期掛起應用程序。結果,一個典型的應用程序完全掛起。如果您希望允許 I/O 返回錯誤並恢復應用程序,則需要ServerAliveInterval=1
或更高。無論如何,這
ServerAliveCountMax=3
是預設值,但我喜歡指定它以提高可讀性。