在写树莓派集群项目的时候,发现如果在树莓派上维护的代码需要非常费力才能跟本地项目代码同步,因此打算将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 tecmint@x.x.x.x:/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@x.x.x.x:/home/tecmint/ /mnt/tecmint
    $ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/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#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
  • 确保服务器之间允许 SSH无密码登录,这样系统重启之后才能自动挂载文件系统。如果你的服务器配置为基于 SSH 密钥的认证方式,请加入如下行:

  • sshfs#tecmint@x.x.x.x:/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

最新文章

  1. 在 Debian 上安装 SQL Server vNext CTP1
  2. 【USACO 3.2】Spinning Wheels(同心圆旋转)
  3. jQuery学习笔记(三)jQuery中的事件
  4. java 多线程(daemon)
  5. mysqlbinglog基于即时点还原
  6. WP8_GestureListener实现列表向下滑动加载新数据
  7. Nginx安装部署
  8. WordPress社会化评论插件多说、有言、灯鹭、评论啦
  9. swift 自定义TabBarItem
  10. Smarty练习增删改
  11. Leetcode 35——Search Insert Position
  12. Linux su命令
  13. 【Selenium】【BugList5】chrom窗口未关闭,又新开窗口,报错:[8564:8632:0522/111825.341:ERROR:persistent_memory_allocator.cc(845)] Corruption detected in shared-memory segment.
  14. Ubuntu下将python从2.7升级到3.5
  15. HTML - 网页特殊字符大全(转)
  16. 伸展树的基本操作——以【NOI2004】郁闷的出纳员为例
  17. Yii框架2.0的安装过程
  18. Kubernetes pod里一个特殊的容器:pause-amd64
  19. 【Linux】动态链接函数库
  20. C++面向对象类的实例题目八

热门文章

  1. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
  2. torch lua tips
  3. iOS 中删除cookie的正确做法
  4. 从头认识java-13.7 什么时候使用泛型?
  5. 应用程序无法正常启动 0xc0000013 vs2013
  6. 微软将支持.net开源并跨平台,新特性会体现于VS2015
  7. Git下的冲突解决【转】
  8. lightbox2
  9. Bing Maps进阶系列三:使用地图图像服务(ImageryService)
  10. 神经网络的结构汇总——tflearn