首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用fswatch和rsync自动同步目录?

如何使用fswatch和rsync自动同步目录?
EN

Stack Overflow用户
提问于 2016-01-03 18:12:21
回答 2查看 8K关注 0票数 15

我想使用rsync在两个本地目录之间自动运行单向同步。这意味着当在/dir1或其子目录的文件中检测到更改时,应运行以下命令:

rsync -rtuv /dir1 /dir2

我如何使用fswatch实现这一点?

是否可以像fswatch事件所给出的那样,为rsync提供参数以仅复制已更改的实际文件?

EN

回答 2

Stack Overflow用户

发布于 2016-08-17 20:44:19

代码语言:javascript
复制
alias run_rsync='rsync -azP --exclude ".*/" --exclude ".*" --exclude "tmp/" ~/Documents/repos/my_repository username@host:~'
run_rsync; fswatch -o . | while read f; do run_rsync; done

第二行无条件地运行一次run_rsync,然后-每次更改当前目录(或者指定确切路径而不是.)

Rsync选项:

部分压缩-a--代表“”和递归同步,并保留符号链接、特殊文件和设备文件、修改时间、组、所有者和部分压缩--

  • -a
  • -P----
    • -P-- permissions.
    • -z和--
    • -P。第一个选项为您提供传输进度条,第二个选项允许您恢复中断的transfers
    • --exclude -按pattern

    排除文件

您将需要fswatch

代码语言:javascript
复制
brew install fswatch
票数 30
EN

Stack Overflow用户

发布于 2022-03-03 08:56:31

对于单行解决方案:

代码语言:javascript
复制
function run_rsync() { rsync your_args } ; run_rsync; fswatch -o your_directory | while read f; do run_rsync; done

感谢@Daniel的鼓舞人心的回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34575374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档