为了像本地同样访问远程主机上的目录,一般咱们会在远程主机上使用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