需要使用只能通过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 一起工作(需要fuse
python3 模块(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