【问题标题】:How do I mount a directory in a remote machine using fuse?如何使用 fuse 在远程机器上挂载目录?
【发布时间】:2012-01-05 06:29:17
【问题描述】:

我想知道如何使用 FUSE 从远程机器挂载目录。 this link 中给出的教程将一个本地目录安装到另一个本地目录。 这基本上发生在 fuse_main 函数中。有没有人知道如何对远程机器上的目录做同样的事情?

函数调用如下

fuse_main(argc, argv, &bb_oper, bb_data);

注意:我不能使用 sshfs

谢谢。

【问题讨论】:

标签: linux unix linux-kernel fuse


【解决方案1】:

太糟糕了,你不能使用 sshfs1 - 这是我的首选武器(如果我需要安装,否则 rsync 会很好)。

你可以试试curlftpfs,它可以挂载一个FTP“共享”。

一定要看看写一个.netrc(具有适当的安全权限),以便使这项工作方便


1 为什么不呢?

【讨论】:

    【解决方案2】:

    您需要有某种本地和远程机器同意的网络传输:如果不是 sshfs,那么 smb 或 NFS 或其他东西。

    如果您告诉所有人您为什么不能使用 sshfs,这可能会有所帮助。

    【讨论】:

      【解决方案3】:

      就像任何其他网络文件系统一样,FUSE 需要一个底层传输层。除非远程机器上的某些东西能够为您处理实际的 I/O,否则它对您没有帮助。

      在你的 fuse 参数中,你为你希望文件系统能够处理的事情设置处理程序,例如:

      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 实现之一的代码,一般重写。如您所见,您至少需要实现 openreadwriteclose 以获得功能最少的 FS。

      这些成员是执行这些操作的函数。他们可以使用 HTTP、SSH、FTP、自定义协议,随心所欲。但是,您必须编写它们,并且远程服务器上的某些东西需要响应它们。

      要直接回答您的问题,除非您自己实现功能,否则 FUSE(单独)不会做您想做的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-05
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 2014-06-19
        相关资源
        最近更新 更多