强制重新连接通过 fstab 安装的 sshfs 驱动器

强制重新连接通过 fstab 安装的 sshfs 驱动器

我有一个每天使用的远程 sshfs 驱动器。我以前每次启动计算机时都会执行以下命令。

sshfs -o Ciphers=arcfour -o Compression=no -o reconnect remote:dev ~/dev

显然,每次都手动执行此操作并不是非常方便,因此我想我只需将遥控器添加到我的文件系统表中即可。我不熟悉 fstab 的格式,但在阅读了一些技术“操作方法”博客后,我决定在我的/etc/fstab文件中包含以下行。

sshfs#wbarlow@remote:/home/wbarlow/dev /home/wbarlow/dev fuse defaults,users,idmap=user 0 0

不幸的是,如果网络出现故障,驱动器有时会出现故障。这种情况可能每天发生一次 - 当我尝试手动重新连接(通过单击 nautilus 中的驱动器)时,我收到一条消息,显示“传输端点未连接。”。

我的主要问题是:如何将-o reconnect终端命令中使用的选项带入 fstab 文件中?我相信这可以防止驱动器因故障而断开连接。

另外,我选择该密码是因为它是我的远程服务器支持的最快的密码(我认为),并且删除了压缩,因为有线千兆位网络比 CPU 压缩内容所花费的时间更快。如果我也可以将这些选项放入我的 fstab 中,那就太好了,但没有它们我也可以生活。

这是我的内核/操作系统/架构信息:

[wbarlow ~]$ uname -r
4.1.3-200.fc22.x86_64

答案1

要包含所需的选项,您应该修改 fstab 条目,如下所示。请小心,因为添加实际不存在的选项将导致您的系统无法启动。

sshfs#wbarlow@remote:/home/wbarlow/dev /home/wbarlow/dev fuse defaults,users,noauto,idmap=user,Ciphers=arcfour,Compression=no,reconnect 0 0

我测试了它

  1. 检查输出ps|grep ssh
  2. 奔跑kill ssh并没有杀死坐骑。

我冒昧地添加了这个noauto选项。这要求挂载不会自动发生,因此任何故障都不会停止引导过程(特别是在使用 systemd 时)。这取决于你有一种方便的跑步方式mount。希望你的文件管理器会提供这个,否则它就失去了意义......

另一种可能性是nofail选项。即使此文件系统无法挂载“此设备(如果不存在)”,此选项也会请求成功启动。不幸的是我们发现 sshfs/fuse 没有实现这个选项。讽刺的是,使用nofail这里的选项肯定会失败。


文档 ( man fstab) 描述了 fstab 条目的第四个字段:

第四场(fs_mntops)

该字段描述与文件系统关联的安装选项。

它的格式为逗号分隔的选项列表。它至少包含挂载类型(ro 或 rw),以及适合文件系统类型的任何其他选项(包括性能调整选项)。有关详细信息,请参阅 mount(8) 或 swapon(8)。

基本的独立于文件系统的选项是:

  • 默认值使用默认选项:rw、suid、dev、exec、auto、nouser 和 async。
  • 不自动当给出“mount -a”时(例如,在引导时),不要安装。
  • 用户允许用户安装。
  • 所有者允许设备所有者安装。
  • 评论或者x-<名称>供 fstab 维护程序使用。
  • 诺失败如果该设备不存在,则不报告该设备的错误。

完全独立于文件系统的选项由 fstab 处理。其他选项将传递给特定于文件系统的命令(在本例中为 sshfs)。

相关内容