• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

SSHFS远程目录自动挂载到本地目录 (纯干货 企业案例实操)【显哥出品,必为精品】

技术栈 lixian 4年前 (2020-09-18) 2529次浏览 0个评论 扫描二维码

1.前言

需求一:我们本地的硬盘空间不够用了,需要挂载到其他服务器的硬盘,实现把远端的硬盘当做本地硬盘来使用
需求二:我们通常使用ssh连接登录服务器,如果登录的服务器不止一个,一个一个来回切换会显得麻烦,可以使用将目录挂载到本地,就可以对远端的服务器进行操作
需求三:挂载是可以挂载了,如何做到开机自启呢?(这里有个小小的坑让我来给大家踩吧)

2.安装sshfs

#首先需要安装fuse和sshfs
[root@test ~]# yum install -y fuse-sshfs.x86_64

3.手动挂载测试

[root@test ~]# sshfs root@192.168.1.126:/root /data/ -o allow_other -o reconnect
root@192.168.1.126 s password:     #这边输入目标服务器的密码
#root@192.168.1.126:/root  ——目标服务器的root家目录路径
#/data  ——本地挂载的路径
#后面的-o  是参数
#-o allow_other  ——挂载过来的目录非root能够访问(这个必须要加的 很重要!)
#-o reconnect  ——断网自动重连
[root@test ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点

root@192.168.1.126:/root   30G  3.5G   27G   12% /data

4.开机自启自动挂载

#创建个脚本文件
[root@test ~]# touch /opt/mount.sh
[root@test ~]# vim  /opt/mount.sh
echo 123456 | sshfs root@192.168.1.126:/root /data/ -o allow_other -o reconnect -o password_stdin
#后面加个参数 -o password_stdin ,前面加个 echo + 目标服务器密码, 意思是不需要输目标服务器密码免密挂载 
123456就是我服务器192.168.1.126的密码

#给脚本执行权限
[root@test ~]# chmod +x  /opt/mount.sh

#脚本执行脚本放到开机自启配置文件里并给执行权限
[root@test ~]# echo sh /opt/mount.sh >> /etc/rc.d/rc.local
[root@test ~]# chmod +x /etc/rc.d/rc.local

扩展:取消挂载命令

#两个方式取消挂载,第一个是基于fuse-sshfs的取消挂载命令
[root@test ~]# fusermount -u /data
#或者
[root@test ~]# umount /data

5.完成,重启测试

SSHFS远程目录自动挂载到本地目录 (纯干货 企业案例实操)【显哥出品,必为精品】

说明一下为什么要用脚本方式自启

这里就是那个坑,网上有很多人写在fstab里面挂载,我进行N遍测试,采取了N种方法!发现这就是坑!
原因是什么呢?sshfs是基于ssh网络传输的,fstab配置文件在网络加载之前自动的,网络都没有加载好,fstab怎么可能成功?
不明白为什么很多人会选择那种方式?

然后又有人说了,在fstab可以添加_netdev条目,告诉系统这个是网络设备,等网络服务启动完成后再尝试进行挂载
我特么试了,还是不行,感觉还是脚本香。


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:SSHFS远程目录自动挂载到本地目录 (纯干货 企业案例实操)【显哥出品,必为精品】
喜欢 (3)

您必须 登录 才能发表评论!