我已经在 Ubuntu 12.04 上安装了 sshfs,并且正在尝试连接到几个远程服务器。
最初挂载似乎成功了。有时,Gnome 甚至会识别它并在屏幕底部显示“发现新设备”框。但从这里开始,就没有什么用了。或者至少不再有用了。我连接的前几次似乎工作正常,我能够传输一些文件。然后我断开了连接,过了一会儿fusermount -u <folder>
重新连接后,麻烦就开始了。
现在,执行 后sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>
,当我将目录更改为挂载点时,shell 就会冻结。奇怪的是,ls -al <folder>
当仅列出远程系统的根目录时,它可以工作,但仅此而已。此外,我尝试过的每个文件资源管理器都会像 一样冻结cd <folder>
。
对我来说,由于它第一次确实起作用了,所以似乎有某种僵尸线程或某种东西在我的系统周围徘徊,所以我尝试重新启动但没有成功。
sshfs -V
给出这个:
SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
答案1
如果您使用 启动 sshfs -o reconnect
,则终止其挂起的 SSH 进程将使其重新连接。
首先找到匹配的SSH,例如:
ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...
然后你可以通过不同的选项集和你连接 sshfs 的主机来区分它们。然后杀死它,常规 SIGTERM 应该就足够了:
kill 9644
这应该会使 SSHFS 启动一个新的 SSH 会话,并且已挂载的文件系统将再次响应,并且挂在其上的所有进程将继续,就像什么都没发生一样。
答案2
用于每秒向服务器发送消息。这将能够sshfs -o reconnect,ServerAliveInterval=1 your-remote-ssh: your-local-folder
快速检测断开连接并自动重新连接以避免可能的挂起和冻结。ssh
sshfs
答案3
这是一篇旧帖子,我没有给出最终的解决方案,但我认为我遇到了同样的问题(在 Ubuntu 14.04 上),就我而言,延迟卸载和重新安装是有效的(尽管有点烦人):
fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder
我怀疑您只是在查看缓存的结果ls -al <folder>
。
答案4
我也遇到了同样的问题 -cd
花费的时间几乎接近大爆炸事件。
问题很简单 - 我一直在使用 Git 扩展作为 shell,它git status
在后台运行。这意味着 Git 必须先下载大量数据。
切换到“无扩展” shell 解决了该问题cd
。