来自远程服务器的目录使用情况只能通过 rsync 访问

来自远程服务器的目录使用情况只能通过 rsync 访问

需要使用只能通过rsync.可以在本地不同步远程目录的情况下完成吗? (喜欢sshfs

现在,仅针对一些已更改的文件及其依赖项就需要如此多的关注

rsync -rvul  remote local

答案1

我遇到过https://github.com/zaddach/fuse-rsync看起来就是为了做到这一点。这不是很完美,可能是为 python2 编写的,但有一些小的修改:

diff --git a/fuse_rsync.py b/fuse_rsync.py
old mode 100644
new mode 100755
index 1df95fe..e57dfdf
--- a/fuse_rsync.py
+++ b/fuse_rsync.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 #Copyright (c) 2014 Jonas Zaddach
 #Licensed under the MIT License (https://github.com/zaddach/fuse-rsync/blob/master/LICENSE)
@@ -186,7 +186,7 @@ class FuseRsync(fuse.Fuse):
             if path == "/":
                 st.st_atime = int(time.time())
                 st.st_ctime = int(time.time())
-                st.st_mode  = stat.S_IFDIR | 0555
+                st.st_mode  = stat.S_IFDIR | 0o0555
                 st.st_mtime = int(time.time())
                 st.st_nlink = 2
                 st.st_uid = os.geteuid()
@@ -209,9 +209,9 @@ class FuseRsync(fuse.Fuse):
             st.st_uid = os.geteuid()
             st.st_gid = os.getegid()
             if info["attrs"] & stat.S_IFDIR:
-                st.st_mode  = stat.S_IFDIR | 0555
+                st.st_mode  = stat.S_IFDIR | 0o0555
             else:
-                st.st_mode = stat.S_IFREG | 0444
+                st.st_mode = stat.S_IFREG | 0o0444
             st.st_mtime = timestamp
             st.st_nlink = 1
             st.st_size = info["size"]

我可以让它与 python3 一起工作(需要fusepython3 模块(python3-fuse基于 Debian 的系统上的包))。

$ python3 ./fuse_rsync.py ~/mnt -o host=rsync.zsh.org -o module=pub
$ ls -lF ~/mnt
total 3
dr-xr-xr-x 1 chazelas chazelas   2 Jan 26  2019 development/
dr-xr-xr-x 1 chazelas chazelas   7 Apr 16  2009 GPL/
-r--r--r-- 1 chazelas chazelas 426 May 17  2022 MD5SUM
dr-xr-xr-x 1 chazelas chazelas 329 May 14  2022 old/
-r--r--r-- 1 chazelas chazelas 488 May 14  2022 zsh-5.9-doc.tar.xz.asc
-r--r--r-- 1 chazelas chazelas 488 May 14  2022 zsh-5.9.tar.xz.asc

相关内容