如何查看sshfs挂载目录是否断开?

How to find out if sshfs mounted directory is not disconnected?

我已经使用 SSHFS 将文件系统远程安装到目录 /mnt/sshfs

我需要使用 shell 脚本来确定此 SSHFS 挂载是否正常工作或者是否存在 connection reset by peer 问题。

如果我尝试访问这样的 SSHFS 文件系统(如果它在 "disconnected state" 中),系统会冻结并等待它最终超时。

我想避免这种情况。我需要知道 SSHFS 是否按预期工作,或者在不冻结系统的情况下是否存在连接问题。

据我所知,SSHFS 除了尝试访问文件并失败之外没有其他检查连接的方法。

您应该能够在安装 SSHFS 时指定 SSH 选项,这些选项指定诸如 ServerAliveInterval 和 ServerAliveCountMax(请参阅 man ssh_config)之类的内容,这些内容将终止您的 SSH 连接 "early"。如果您的互联网连接断开,请确保使用 TCPKeepAlive 终止连接。

我想说的是解决已知连接状态问题的一种有趣方法是扩展 sshfs(这并不是真正那么复杂的 FUSE 模块),并添加一个 ioctl您可以查询以确定是否一切正常,如果不正常则不阻塞。

我猜只是 grep 挂载命令?

if (( $(mount | grep -e 'whatever you like'| wc -l) > 0 ));
then     
echo "mounted"; 
fi