通过sshfs挂载的共享运行Python程序

0 投票
1 回答
553 浏览
提问于 2025-04-17 06:37

我在机器A上有一个共享文件夹,通过sshfs在机器B上挂载。然后从机器C,我也通过sshfs挂载了这个共享文件夹(也就是双重sshfs),具体是这样:

在机器C上:/mnt/Machine-B/target_share

在机器B上:/mnt/Machine-A/target_share

在机器A上:/media/target_share

现在我有一个Python程序,在所有测试过的地方都能正常运行(包括机器C的本地文件系统),但在机器C上运行时,访问机器A上的驱动器却不行,这个驱动器是挂载在机器B上的。

我在机器C上运行这个Python程序是因为它有足够的资源来运行它。我在机器A和机器B上运行过这个程序,但每次都把内存用满了,导致程序失败。我也尝试过用这样的命令在机器B上挂载target_share

sudo mount -t cifs -o username=<username>,password=<password> //Machine-A/target_share /mnt/target_share

但是我尝试的每种方式都不行,比如用不同的账号密码,或者不带账号密码等等。

更糟糕的是,我只能从机器C通过SSH连接到机器B。我无法直接从机器C访问机器A,如果能直接访问,可能一切都会顺利很多。

这个Python程序在机器C上能运行,但我需要的中间逻辑却不执行,也没有任何错误提示。它基本上是启动后几秒钟就结束了。

我对Python还比较陌生。另外,不确定这个帖子是否应该发在其他地方。如果是的话,请告诉我或者移动到合适的地方。

如果需要的话,我也可以发布Python代码。

抱歉帖子有点复杂,我不知道怎么更好地解释。

提前谢谢大家。

1 个回答

0

我发现sshfs可能有个bug,具体来说就是如果在Linux系统上,有两个用户的用户ID是一样的,比如都是1002,但用户名不同,这会导致一些问题。

我解决这个问题的方法是干脆不使用sshfs,而是直接把驱动器挂载到本地系统上。我本来不想这样做,因为我不能在远程位置操作,但这样做确实能解决问题。

撰写回答