我想知道如何使用FUSE从远程机器上挂载一个目录。 在这个链接中给出的教程将本地目录挂载到另一个本地目录。 这基本上发生在fuse_main函数中。 有没有人有一个想法,如何做一个远程机器上的目录相同?
函数调用如下
fuse_main(argc, argv, &bb_oper, bb_data);
注意:我不能使用sshfs
谢谢。
就像其他网络文件系统一样,FUSE将需要一个底层传输层。 它不能帮助你,除非远程机器上的东西能够为你处理实际的I / O。
在你的保险丝参数中,你为你想要的文件系统能够处理的事情设置处理程序,例如:
static struct fuse_operations const myfs_ops = { .getattr = my_getattr, .mknod = my_mknod, .mkdir = my_mkdir, .unlink = my_rm, .rmdir = my_rmdir, .truncate = my_truncate, .open = my_open, .read = my_read, .write = my_write, .readdir = my_readdir, .create = my_create, .destroy = my_destroy, .utime = my_utime, .symlink = my_symlink };
这是我目前的一个FUSE实现的代码,一般重新编写。 正如你所看到的,你至少需要实现open
, read
, write
和close
功能最小的FS。
这些成员是执行这些操作的功能。 无论您想要什么,他们都可以使用HTTP,SSH,FTP,自定义协议。 但是,您必须编写它们,并且远程服务器上的某些内容需要对它们进行响应。
要直接回答你的问题,FUSE(自己的)不会做你想做的,除非你自己实现这个功能。
太糟糕了,你不能使用sshfs 1 – 这是我选择的武器( 如果我需要挂载 ,否则rsync很好)。
你可以尝试curlftpfs
这是能够安装一个FTP“共享”。
一定要看看.netrc
(有适当的安全权限),以便使这个工作方便
1为什么不呢?
你需要有一些本地和远程机器同意的网络传输:如果不是sshfs那么smb或者NFS或者其他东西。
如果你告诉大家为什么你不能使用sshfs,这可能会有所帮助。