linux服務器使用SSHFS掛載遠程linux服務器的磁盤目錄
使用前需要注意的問題:
1.兩台服務器之間ping不可太高,越低越好
2.兩台服務器直連網絡要穩定,延時抖動越低越好
3.請認准服務器操作系統,不同操作系統命令不同,下方命令後會有備註系統
什麼是SSHFS?
SSHFS(Secure SHell FileSystem)是一個客戶端,可以讓我們通過SSH 文件傳輸協議(SFTP)掛載遠程的文件系統並且在本地機器上和遠程的目錄和文件進行交互。
SFTP 是一種通過SSH 協議提供文件訪問、文件傳輸和文件管理功能的安全文件傳輸協議。因為SSH 在網絡中從一台電腦到另一台電腦傳輸文件的時候使用數據加密通道,並且SSHFS 內置在FUSE(用戶空間的文件系統)內核模塊,允許任何非特權用戶在不修改內核代碼的情況下創建他們自己的文件系統。
在這篇文章中,我們將會向你展示在任意Linux 發行版上如何安裝並且使用SSHFS 客戶端,在本地Linux 機器上掛載遠程的Linux 文件系統或者目錄。
步驟1:在Linux 系統上安裝SSHFS
默認情況下,sshfs 包不存在所有的主流Linux 發行版中,你需要在你的Linux 系統中啟用epel 倉庫,在Yum 命令行的幫助下安裝SSHFS 及其依賴。
# yum install sshfs # dnf install sshfs 【在Fedora 22+發行版上】 $ sudo apt - get install sshfs 【基於Debian / Ubuntu 的系統】
步驟2:創建SSHFS 掛載目錄
當你安裝SSHFS 包之後,你需要創建一個掛載點目錄,在這兒你將要掛載你的遠程文件系統。例如,我們在/mnt/tecmint 下創建掛載目錄。
# mkdir /mnt/tecmint $ sudo mkdir / mnt / tecmint 【基於Debian / Ubuntu 的系統】
步驟3:使用SSHFS 掛載遠程的文件系統
當你已經創建你的掛載點目錄之後,現在使用root 用戶運行下面的命令行,在/mnt/tecmint 目錄下掛載遠程的文件系統。視你的情況掛載目錄可以是任何目錄。
下面的命令行將會在本地的/mnt/tecmint 目錄下掛載一個叫遠程的一個/home/tecmint 目錄。(不要忘了使用你的IP 地址和掛載點替換xxxx)。
# sshfs tecmint@xxxx:/home/tecmint/ /mnt/tecmint $ sudo sshfs - o allow_other tecmint@x . x . x . x : /home/ tecmint / / mnt / tecmint 【基於Debian / Ubuntu 的系統】
如果你的Linux 服務器配置為基於SSH 密鑰授權,那麼你將需要使用如下所示的命令行指定你的公共密鑰的路徑。
# sshfs -o IdentityFile=~/.ssh/id_rsa tecmint@xxxx:/home/tecmint/ /mnt/tecmint $ sudo sshfs - o allow_other , IdentityFile =~/. ssh / id_rsa tecmint@x . x . x . x : /home/ tecmint / / mnt / tecmint 【基於Debian / Ubuntu 的系統】
步驟4:驗證遠程的文件系統掛載成功
如果你已經成功的運行了上面的命令並且沒有任何錯誤,你將會看到掛載在/mnt/tecmint 目錄下的遠程的文件和目錄的列表
# cd /mnt/tecmint # ls [ root@ tecmint ] # ls 12345.jpg ffmpeg - php - 0.6 . 0.tbz2 Linux news - closeup . xsl s3 . jpg cmslogs gmd - latest . sql . tar . bz2 Malware newsletter1 . html sshdallow epel - release - 6 - 5.noarch . rpm json - 1.2 . 1 movies_list . php pollbeta . sql ffmpeg - php - 0.6 . 0 json - 1.2 . 1.tgz my_next_artical_v2 . php pollbeta . tar . bz2
步驟5:使用df -hT 命令檢查掛載點
如果你運行df -hT命令,你將會看到遠程文件系統的掛載點。
# df -hT
樣本輸出:
Filesystem Type Size Used Avail Use % Mounted on udev devtmpfs 730M 0 730M 0 % /dev tmpfs tmpfs 150M 4.9M 145M 4% / run / dev / sda1 ext4 31G 5.5G 24G 19 % / tmpfs tmpfs 749M 216K 748M 1% / dev / shm tmpfs tmpfs 5.0M 4.0K 5.0M 1 % /run/ lock tmpfs tmpfs 749M 0 749M 0 % /sys/ fs / cgroup tmpfs tmpfs 150M 44K 150M 1 % /run/ user / 1000 tecmint@192 . 168.0 . 102 : /home/ tecmint fuse . sshfs 324G 55G 253G 18 % /mnt/ tecmint
步驟6:永久掛載遠程文件系統
為了永久的掛載遠程的文件系統,你需要修改一個叫/etc/fstab 的文件。照著做,使用你最喜歡的編輯器打開文件。
# vi /etc/fstab $ sudo vi / etc / fstab 【基於Debian / Ubuntu 的系統】
移動到文件的底部並且添加下面的一行,保存文件並退出。下麵條目表示使用默認的設置掛載遠程的文件系統。
sshfs #tecmint@xxxx:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
確保服務器之間允許SSH 無密碼登錄,這樣系統重啟之後才能自動掛載文件系統。
如果你的服務器配置為基於SSH 密鑰的認證方式,請加入如下行:
sshfs #tecmint@xxxx:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下來,你需要更新fstab 文件使修改生效。
# mount -a $ sudo mount - a 【基於Debian / Ubuntu 的系統】
步驟7:卸載遠程的文件系統
為了卸載遠程的文件系統,只需要發出以下的命令即可。
# umount /mnt/tecmint