inotify + rsync实现的同步机制,为什么有两个进程?

发布于 2022-08-18 04:35:26 字数 822 浏览 16 评论 1

#!/bin/bash
host=192.168.1.221
src=/data/html/
des=html
user=html

/usr/bin/inotifywait -mrq --timefmt '%y/%m/%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files;
    do
       /usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync/html.passwd $src $user@$host::$des &>/dev/null && 
       echo "${files} was rsyncd." >> /var/log/rsync/rsync.log 2>&1
   done

以上是shell脚本,启动后,就会出现两个进程

root     23015 19144  0 15:23 pts/0    00:00:00 /bin/bash ./rsync.sh
root     23017 23015  0 15:23 pts/0    00:00:00 /bin/bash ./rsync.sh



这是为什么?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骷髅 2022-08-18 14:25:29

rsync的工作方式是创建两个进程,即发送方和接收方,这两个流程创建文件列表及其元数据,以相互决定需要更新哪些文件.即使是本地文件,也可以这样做,但是在这种情况下,进程可以通过管道而不是网络套接字进行通信.确定更改文件列表后,更改将作为增量或整个文件发送.

从理论上讲,一个文件可以将文件列表中的整个文件发送给另一个文件,以进行比较,但是实际上,这在许多情况下效率很低.如果接收器检测到需要更新文件,否则接收器将需要将这些文件保留在内存中,否则需要重新发送文件中的更改.这里的任何可能的解决方案听起来都不是很有效.

关于rsync的(理论)机制有很好的概述:https://rsync.samba.org/how-rsync-works.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文