在寫樹莓派集羣項目的時候,發現如果在樹莓派上維護的代碼需要非常費力才能跟本地項目代碼同步,因此打算將Server端和Client端代碼分開,樹莓派上的Client端代碼遠程掛載到本地,這樣做比之前要更高效些。
Step 1. 在 Linux 上安裝 SSHFS
默認情況下,sshfs 包不存在所有的主流 Linux 發行版中,你需要在你的 Linux 系統中啓用 epel,在 Yum 命令行的幫助下安裝 SSHFS 及其依賴。
# yum install sshfs # dnf install sshfs 【在 Fedora 22+ 發行版上】 $ sudo apt-get install sshfs 【基於 Debian/Ubuntu 的系統】
Step 2. 使用 SSHFS 掛載目錄
當你安裝 SSHFS 包之後,你需要創建一個掛載點目錄,在這兒你將要掛載你的遠程文件系統。例如,我們在 /mnt/tecmint 下創建掛載目錄。
$ sudo mkdir /mnt/tecmint
Step 3. 使用 SSHFS 掛載遠程的文件系統
當你已經創建你的掛載點目錄之後,現在使用 root 用戶運行下面的命令行,在 /mnt/tecmint 目錄下掛載遠程的文件系統。視你的情況掛載目錄可以是任何目錄。
下面的命令行將會在本地的 /mnt/tecmint 目錄下掛載一個叫遠程的一個 /home/tecmint 目錄。(不要忘了使用你的 IP 地址和掛載點替換 x.x.x.x)。
# sshfs [email protected]:/home/tecmint/ /mnt/tecmint $ sudo sshfs -o allow_other [email protected]:/home/tecmint/ /mnt/tecmint 【基於 Debian/Ubuntu 的系統】
如果你的 Linux 服務器配置爲基於 SSH 密鑰授權,那麼你將需要使用如下所示的命令行指定你的公共密鑰的路徑。
# sshfs -o IdentityFile=~/.ssh/id_rsa [email protected]:/home/tecmint/ /mnt/tecmint $ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email protected]:/home/tecmint/ /mnt/tecmint 【基於 Debian/Ubuntu 的系統】
Step 4. 驗證遠程文件系統是否掛載成功
- 如果你已經成功的運行了上面的命令並且沒有任何錯誤,你將會看到掛載在 /mnt/tecmint 目錄下的遠程的文件和目錄的列表
Step 5. 使用 df -hT 命令檢查掛載點
如果你運行 df -hT命令,你將會看到遠程文件系統的掛載點。
# df -hT
Step 6. 永久掛載遠程文件系統
爲了永久的掛載遠程的文件系統,你需要修改一個叫
/etc/fstab
的文件夾。使用vim
打開文件。# vim /etc/fstab
移動到文件的底部並且添加下面的一行,保存文件並退出。下麪條目表示使用默認的設置掛載遠程的文件系統。
sshfs#[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
確保服務器之間允許 SSH無密碼登錄,這樣系統重啓之後才能自動掛載文件系統。如果你的服務器配置爲基於 SSH 密鑰的認證方式,請加入如下行:
sshfs#[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下來,你需要更新 fstab 文件使修改生效。
# mount -a $ sudo mount -a 【基於 Debian/Ubuntu 的系統】
Step 7. 卸載遠程文件系統
爲了卸載遠程的文件系統,只需要發出以下的命令即可。
# umount /mnt/tecmint
文章轉載自:https://linux.cn/article-7855-1.html