
我已經在 Ubuntu 12.04 上安裝了 sshfs,並且正在嘗試連接到幾個遠端伺服器。
最初安裝似乎很成功。有時,Gnome 甚至會選擇它並在螢幕底部顯示“找到新設備”框。但從現在開始,就沒有什麼有用的了。或者至少不再是這樣了。我連接的前幾次似乎工作正常,並且我能夠傳輸一些文件。然後我斷開連接fusermount -u <folder>
,稍後重新連接後,問題就開始了。
現在執行後sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>
,當我將目錄變更為安裝點時,shell 就會凍結。奇怪的是,ls -al <folder>
僅列出遠端系統的根目錄時有效,僅此而已。此外,我嘗試過的每個文件瀏覽器都會像cd <folder>
.
對我來說,似乎有某種殭屍線程或某些東西掛在我的系統周圍,因為它第一次確實有效,所以我嘗試重新啟動但沒有運氣。
sshfs -V
給出這個:
SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
答案1
如果您使用 啟動 sshfs -o reconnect
,則終止它掛起的 SSH 進程將使其重新連線。
首先找到匹配的SSH,例如:
ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...
您可以透過一組獨特的選項和您連接 sshfs 的主機來區分它。然後殺死它,常規的 SIGTERM 應該就夠了:
kill 9644
這應該會使 SSHFS 啟動一個新的 SSH 會話,並且掛載的檔案系統將再次回應,並且掛在其上的所有進程將繼續運行,就好像什麼也沒發生一樣。
答案2
用於每秒向伺服器發送訊息sshfs -o reconnect,ServerAliveInterval=1 your-remote-ssh: your-local-folder
。ssh
這將能夠sshfs
快速檢測斷開連接並自動重新連接,以避免可能的掛起和凍結。
答案3
這是一篇舊文章,我沒有給出最終的解決方案,但我認為我遇到了同樣的問題(在Ubuntu 14.04 上),在我的情況下,延遲卸載和重新安裝有效(儘管這有點煩人) :
fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder
我懷疑您只是在查看快取的結果ls -al <folder>
。
答案4
我也遇到了同樣的問題 -cd
花費了幾乎接近大繁榮事件的時間。
問題非常簡單 - 我一直在 shell 中使用 Git 擴展,並且它git status
在後台運行。這意味著 Git 必須先下載大量資料。
切換到「無擴展」shell 解決了cd
.