在NFS挂载点上挂载sshfs时如何(干净)?


15

我的同事有一台台式计算机,/home在我们的文件服务器上共享。我已经开发了一个Perl脚本,用于sshfs-将某个目录安装在另一个SSH主机上,该主机可以在我的笔记本电脑上正常工作。

在他的计算机上,脚本最后未能卸载,sshfs并使安装点不干净。除了重新启动之外,我没有找到任何恢复安装点的方法。经过一些测试,我发现我们的设置之间的区别在于他/home在NFS上。在他的/tmp作品中完美无瑕。

挂载后,在脚本操作期间一切正常。但是在终止sshfs进程时<defunc>ps直到父进程(Perl脚本)退出之前,该进程都被列为“ by” 。在sshfs外壳上运行原始命令时,仍然会出现问题。

ls -dl挂载点的输出如下所示(记住-我手边没有shell输出的真实副本):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(对于大多数信息,只有问号,至少是所有权限详细信息)

sshfs挂载仍然按列出,mount但是即使执行as ,卸载操作也会失败,并且错误权限被拒绝root

我搜索了Google,但只发现sshfs和NFS在运行网络文件系统方面有很多比较。如何在NFS目录中安全地进行sshfs装载/卸载?

Answers:


38

您应该能够执行以下命令来卸载sshfs共享:

 fusermount -u /path/to/sshfs/share

我尝试了此操作,但未获得许可。当然,umount以非root用户身份运行时,普通用户必须失败。
DanielBöhmer

您无法卸载(使用任何方法)的原因很可能是因为他的主目录是从NFS装入的,该目录随该root_squash选项一起导出。因此,root在其主目录中没有权限。您可能会关闭电源,root_squash但将其安装在其他位置可能更安全。
JFlo

2
我忘了,每次,即umountfusermount -u不工作,当目录是用于什么地方。所以cd在使用fusermount -u或使用之前退出目录lsof /my/local/mountpoint
eli

16

只需使用pkill终止进程,然后卸载挂载的文件夹路径即可。

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

有时我必须执行“ sudo umount -f”或“ sudo umount -l”而不是umount。
fchen

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.