2011-11-24 30 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,它可能會有所幫助。

相關問題