如何让rsync从STDIN读取SRC?

Sah*_*Sah 8 linux shell rsync pipe

我想转储我的MySQL数据库并进行每日备份rsync.

我想出的第一种方法是类似的mysqldump -ufoo -pbar baz > /var/tmp/baz.sql && rsync /var/tmp/baz.sql /backup/ && rm /var/tmp/baz.sql.

然后我开始怀疑是否有可能不使用临时文件/var/tmp/baz.sql,而是mysqldump直接管道输出rsync.

更具体地说,我想要的是一个命令行,我们用它来更新Ubuntu中的apt的GPG键:gpg --export --armor CE49EC21 | sudo apt-key add -管道的接收者支持这个' -'参数,表明它将从中读取stdin.我想rsync没有类似的论点.但我想知道是否有解决方法.

glg*_*lgl 8

这是对的,它不会这样工作.这是因为rsync将完整的文件树转移AB.

由于方式rsync有效,它无法工作,因为rsync在选择传输特定文件(或部分文件)之前计算多个校验和,并且仅在2次迭代中执行此操作(乒乓步骤).

这意味着必须多次读取文件.这不适用于(可能很大的)SQL转储,因为它必须以某种方式缓冲.这种缓冲取决于用户.

实际上存储文件应该是最好的解决方法,特别是如果它只是一个渐变差异的文件.