爲了像本地同樣訪問遠程主機上的目錄,一般咱們會在遠程主機上使用nfs來導出目錄,並在本地主機上mount這個nfs文件系統。若是是windows系統,則使用cifs或samba的方式來訪問。html
但可能咱們忽略了一個遠程鏈接最通用的工具:ssh。其實不少和遠程有關的行爲,基於ssh都能完成,即便是實現像NFS同樣的功能。linux
如何經過ssh來掛載遠程目錄?須要安裝fuse-sshfs
包,這個包在epel中提供。使用fuse-sshfs包提供的sshfs工具能夠基於ssh直接掛載遠程目錄,不用像NFS同樣還要export。windows
$ yum -y install fuse-sshfs $ rpm -ql fuse-sshfs /usr/bin/sshfs /usr/share/doc/fuse-sshfs-2.5 /usr/share/doc/fuse-sshfs-2.5/AUTHORS /usr/share/doc/fuse-sshfs-2.5/COPYING /usr/share/doc/fuse-sshfs-2.5/ChangeLog /usr/share/doc/fuse-sshfs-2.5/FAQ.txt /usr/share/doc/fuse-sshfs-2.5/NEWS /usr/share/doc/fuse-sshfs-2.5/README /usr/share/man/man1/sshfs.1.gz
例如,掛載192.168.100.150上的根目錄"/"到本地的/mnt上。注意:只能掛載遠程目錄,像普通文件、塊設備(如/dev/sda2)等沒法掛載。ssh
sshfs root@192.168.100.150:/ /mnt
如此一來,之後能夠直接訪問本地/mnt來訪問遠程的根目錄。例如複製文件、移動文件、新建文件等等操做。分佈式
若是要卸載掛載點。直接umount便可。工具
umount /mnt
相比於NFS,sshfs更簡潔,它是基於fuse模塊來實現的,能夠認爲sshfs所掛載的文件系統是fuse文件系統的一種實現。所謂fuse文件系統,它全稱爲filesystem in userspace
,顯然,它是用戶空間的文件系統(實際上是一個虛擬文件系統),其功能很是強大,可用於實現本身的文件系統。詳細信息能夠sshfs -h
,man sshfs
,man fusermount
,man mount.fuse
。spa
可是NFS比sshfs要完整的多,nfs畢竟是"小型"分佈式文件系統,對數據的一致性、完整性實現的都比較完美,訪問權限控制也比sshfs要豐富的多。code
總的來講,sshfs能夠臨時用來快速訪問遠程文件。htm
更詳細的sshfs,參見https://linux.cn/article-7855-1.htmlci