2011-11-24 29 views
2

我想知道如何使用FUSE从远程机器上安装一个目录。在this link中给出的教程将本地目录挂载到另一本地目录。 这实质上发生在fuse_main函数中。有没有人有一个想法,如何做一个远程机器上的目录相同?如何使用保险丝在远程机器上安装目录?

函数调用如下:

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

注:我不能SSHFS

谢谢使用。

+5

你在混合抽象层次。看看保险丝API会告诉你什么是文件系统驱动程序。在这里看看:http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FileSystems – sehe

回答

0

就像任何其他网络文件系统一样,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 
}; 

这是代码从我的电流保险丝的实现方式之一,一般重写。正如你所看到的,你至少需要实现open,read,writeclose这个最小功能的FS。

这些成员是执行这些操作的函数。无论您想要什么,他们都可以使用HTTP,SSH,FTP,自定义协议。但是,您必须编写它们,并且远程服务器上的某些内容需要对它们做出响应。

要直接回答你的问题,FUSE(在它自己的)不会做你想做的,除非你自己实现这个功能。

2

太糟糕了,你不能SSHFS 使用 - 这是我的首选武器(当且仅当我以往任何时候都需要安装,否则不rsync的很好)。

你可以尝试curlftpfs这是能够安装FTP'共享'。

一定要看看在写一个.netrc(与安全正确的权限),从而使这项工作方便


为什么不呢?

1

为了达到这个目的,你需要有本地和远程机器达成的某种网络传输:如果不是sshfs,那么smb或者NFS等等。

如果你告诉大家为什么你不能使用sshfs,它可能会有所帮助。

相关问题