rsync 3.1.0 正在创建空备份目录

rsync 3.1.0 正在创建空备份目录

我刚刚注意到 rsync 的 3.0.9 版本和 3.1.0 版本之间存在差异。

运行命令

$ rsync -a --delete --backup --backup-dir=../old source/ dest/

版本 3.1.0 给出输出

Created backup_dir ../old/

即使没有文件复制到备份目录。我通常将当前时间添加到备份目录名称中,这意味着我最终会得到许多空目录。在 rsync 3.0.9 版本中,仅在需要时才创建备份目录。

我的问题是:

  1. 这是预期的行为吗?如果是,是否可以禁止创建空备份目录?
  2. 我可以将 rsync 版本 3.0.9 与版本 3.1.0 一起安装,这样一个称为 rsync309,另一个称为 rsync310,然后有一个别名将 rsync 链接到两者之一(在我的情况下,这意味着我会保留使用 rsync 3.0.9 因为我发现这个新行为很烦人)?

答案1

是的,这是有意的行为。错误号 11423已提交有关此问题的信息,并在 3.1.2 版本中改回。

https://bugzilla.samba.org/show_bug.cgi?id=11423#c12:

虽然我仍然喜欢在传输开始时对顶级备份目录进行新的早期验证,但我被说服让它返回到需要时才创建目录。已针对即将发布的 3.1.2 版本进行修复。

虽然大多数发行版尚未提供 3.1.2 版的软件包,但它的编译确实快速且容易:我在 Debian Jessie 上执行了以下操作,一切顺利,将新版本安装到/usr/local/bin

wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
tar xvf rsync-3.1.2.tar.gz -C /tmp/
cd /tmp/rsync-3.1.2/
./configure
make
make install

如果您将它用作守护程序,您的初始化脚本可能会通过其完整路径来调用它,因此您可能还想将其替换为新版本的链接:

/etc/init.d/rsync stop
mv /usr/bin/rsync /usr/bin/rsync.old
ln -si ../local/bin/rsync /usr/bin/rsync
/etc/init.d/rsync start

更新:如果您使用的是 Debian Jessie,您实际上可以从以下位置安装 rsync 软件包:Debian 伸展:

wget "http://ftp.ch.debian.org/debian/pool/main/r/rsync/rsync_3.1.2-1_amd64.deb"
dpkg -i rsync_3.1.2-1_amd64.deb

相关内容