我如何确保我的 sshfs 挂载驱动器尽可能保持连接?

我如何确保我的 sshfs 挂载驱动器尽可能保持连接?

我一直在尝试让它工作,但现在已经超出了我的能力范围。我已经阅读了有关此问题的所有资料……但我无法解决这个问题。故事很简单。我需要在本地服务器上安装远程驱动器。我可以毫无问题地完成这项工作。我运行以下命令:

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_1 ~/folder_1
sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_2 ~/folder_2
sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_3 ~/folder_3

答对了。就像魔术一样。

然而:

远程驱动器位于我租用的共享服务器上。因此,有时它会被重置,安装会丢失。或者有时我重置了我的家庭服务器,安装会丢失。或者我的互联网会停止一秒钟(感谢康卡斯特)……或者出于某种原因,连接不是一直都很稳定。没关系,我可以理解这有时不是传输信息的理想方式。但是,当安装启动并运行时,它完全可以满足我的需求。

那么...我该怎么做才能确保我的服务器自动保持那些 sshfs 挂载的远程目录尽可能保持连接?我目前有一个丑陋的系统,我在手机上使用 tasker 和一个带有代码片段的 ssh 应用程序以设定的时间间隔自动运行并远程连接到我的家庭服务器,打开正在运行的屏幕(screen -R),运行命令,然后断开连接。

我曾尝试创建一个 bash 脚本并使用 crontab 运行它,但由于我无法理解的原因它不起作用(新手脚本触发警报):

#!/bin/sh

screen -R

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_1 ~/folder_1;

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_2 ~/folder_2;

sshfs -o idmap=user [email protected]:/home/sfurules/files/folder_3 ~/folder_3;

screen -D

我曾尝试向 fstab 添加一些东西,但说实话,感觉我只是在猜测一些事情,而且我真的太笨了,无法让它发挥作用......

任何帮助我都会感激不尽。我已经走投无路了。

答案1

您可以尝试提供该reconnect选项sshfs(如果您还没有这样做的话!)

sshfs -o reconnect -o idmap=user ...

有趣的是,sshfs手册页对此选项没有太多说明,但它似乎可以满足您的要求。我自己sshfs在 Mac、Linux 笔记本电脑和 Android 手机上安装了远程驱动器,并且所有连接似乎都很稳定 --- 它可以非常可靠地(绝不是总是如此,但我认为在 90% 以上的情况下)承受连接丢失、挂起/休眠等。

希望这可以帮助!

相关内容