Mount

有什麼方法可以防止寫入未安裝的安裝點?

  • May 12, 2020

我經常使用sshfs將遠端目錄樹(例如myhost:~/workspace/)掛載到本地目錄樹(例如~/workspace-mount/),並在本地編輯器中打開遠端文件。

我斷開連接並且遠端目錄樹在我沒有意識到的情況下被解除安裝並不少見。如果我無意中將打開的文件保存在本地編輯器中,我的編輯器會默默地將文件保存到本地磁碟,並根據需要重新創建遠端目錄結構。然後,這成為混淆的秘訣,因為我現在不知不覺地已經分叉了文件副本。

如果我失去了安裝,我更希望保存失敗,例如權限錯誤。

我嘗試刪除對 的寫權限~/workspace-mount/,但fusermount拒絕在沒有寫權限的情況下安裝它。

我能想到的最佳選擇是在本地myhost:~/workspace/重新創建myhost:~/workspace/.

有什麼方法可以防止在解除安裝時意外寫入本地安裝點?

使用reconnect旗幟。這將保持文件系統掛載。如果您斷開連接,則在文件系統上具有掛起操作的程序將掛起並最終失敗並出現一般 I/O 錯誤,除非重新建立連接。

根據您的設置方式,在您斷開連接後,您實際上可能會重新連接(如果您使用 ssh 密鑰)或者您的掛載點可能會損壞(如果您使用密碼)。如果您立即收到 I/O 錯誤(意味著重新連接不成功),您可能必須fusermount -u ~/workspace-mount/在嘗試再次掛載之前發出 a 。

在任何情況下,您和您的程序都會知道斷開連接。

sshfs -o reconnect myhost:~/workspace ~/workspace-mount/

為了測試,可以通過在伺服器端殺死sftp-server來粗略的模擬斷線。

引用自:https://unix.stackexchange.com/questions/585821