我正在使用SSHFS从我的笔记本电脑安装到中央服务器。
显然,SSHFS挂载在较长的断开连接(例如挂起期间)之后中断,导致底层的SSH连接超时。
有没有一种方法可以使SSHFS挂载持续长时间断开连接(> 5分钟),甚至可以使用不同的IP重新拨号?
感谢autossh和autofs的提示。
但是,为了我的直接目的,我find了一个非常简单的解决scheme,这个解决scheme没有很好的logging:
sshfs -o reconnect server:/path/to/mount
使用-o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
这些ServerAlive
选项会导致I / O错误在networking中断一分钟后popup。 如果没有这些选项,即使在sshfs被reconnect
之后,经历I / O挂起的进程也会无限期地hibernate。
当通知ssh已经死亡或停止通过stream量时, Autossh会自动重新连接ssh会话。 由于它只是自动ssh,它将从不同的IP和暂停工作(即使笔记本电脑在不同的局域网唤醒)。
你可以做的一件事是通过autofs挂载你的文件系统。 Autofs是一个在你使用文件系统所在目录中的东西的时候会挂载文件系统的工具。 当它检测到活动时,文件系统被挂载。 当文件系统上没有任何事情发生时,它被卸载。
这里是我在谷歌find的一个howto完成这个,那里几个其他地方。
我怀疑没有,因为即使您可以configuration您的SSH客户端不要删除连接,服务器可能被configuration为在指定的一段时间内不活动,并且您将无法覆盖。 即使你可以,如果你永远不能恢复连接,服务器将被挂起,随着时间的推移,这可能会导致服务器资源的显着浪费。
我认为更好的方法是在挂起计算机之前卸载文件系统,并在计算机再次唤醒时重新挂载。 这样做的机制可能取决于你如何挂起你的计算机 – 我使用tuxonice内核,并做这样的事情,我有一个像
Unmount /mnt/sshfs
在/etc/hibernate/common.conf
。