扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
大家可能知道并用过在linux上通过smb,nfs来进行远程文件系统的共享,可是大家是否知道我们现在还可以通过ssh来进行远程文件系统的共享。你可能会说这有什么希奇的,不就是ssh远程登录嘛,再不就是sftp或者scp之类的方式,总之,这些东西熟的不能再熟了。可是我在这里要说的可不是这些东西,我要说的是通过sshfs来将远程主机的文件系统挂载到本地,之后就可以像使用本地文件系统一样使用远程文件系统了。看到这里,大家是否觉得有兴趣了呢?接下来让我们看看到底怎么来作到这点。
实际上,使用sshfs挂载远程主机的方法还不只一种,目前我知道的方法有三种,第一种是通过基于lufs的sshfs子系统来完成,第二种是通过基于fuse的sshfs程序来完成,而第三种直接通过内核支持的shfs模块就可以了。经测试,通过第二种方法来挂载的远程主机文件系统比第一种方法要稳定的多,而第三种方法是最简单也是跟系统接合最好的。第一种方法如果跟autofs来配合,可以更方便的挂载远程文件系统,不过在这样挂载的文件系统上直接打开歌曲或者电影之类的文件可能有些问题,我在以这种方式挂载的系统上听歌时,如果再对这个文件系统上的其他文件进行操作,歌曲就会停止播放。而通过后两种方法挂载的系统就没有这个问题。所以我们这里只说明后两种方法。第一种方法大家如果有兴趣可以自己研究。
这里以debian系统来作说明是因为我使用的系统是debian,我没有在其他linux系统上做过实验,但其他linux系统应该也是可以的。
一、通过sshfs挂载远程主机文件系统
首先,需要下载sshfs,这一步很简单:
|
另外它是基于fuse模块的,所以必须要保证你的内核模块里已经有了这个模块,debian系统的内核默认是没有编译这个模块的,不过安装这个模块在debian下很简单,首先下载fuse的源码包和工具包以及编译需要用到的程序。
|
设置环境变量:
|
下载内核头文件:
|
现在进入/usr/src内可以找到头文件和fuse模块的源码包,然后我们解压编译。
|
编译fuse模块:
|
好,完成编译,编译完的debian包可以在/usr/src/modules/(或者/usr/src/)中找到。
安装刚刚编译的fuse模块。
|
好了现在第一步完成了。下面可以测试一下是否可以使用sshfs了。
首先创建一个挂载点(这里我以remotehost这个名字为例,你可以使用任何你喜欢的名字):
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者