使用Shell脚本检查rsync是否进行了任何更改


10

我有一个bash脚本,用于rsync的两个目录。有时会有变化,没有机会。

我只想在rsync实际上进行了更改(添加/更新文件)的情况下运行命令。否则,我只想跳过它。我应该关注退货问题吗?

Answers:


11

如果使用-i选项(并且不使用-v选项),则rsync将仅将行进行任何更改打印到STDOUT。根据您的脚本,这可能看起来像

if [ -n "$(rsync -i /dir1 /dir2)" ]; then
  run_command;
fi

那似乎正是我想要的...谢谢。没想到像那样使用-i标志。
raccettura

为了澄清,如果要运行脚本,如果做出更改,那么==应该是!=
hamx0r 2015年

好吧,从我所看到的来看,这段代码是错误的。至于该代码,您可以运行Rsync运行FINE或HAS ERROR,但是此代码不会检查是否有更改。我不知道其他版本的Rsync是否可以,但是我在Raspbmc(我们有一个旧的实现)和OSMC中使用RSYNC。令人遗憾的是,RSYNC似乎是一个很棒的工具。

2
带有-i标志-rsync版本不进行任何更改时3.1.1输出sending incremental file list
Dor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.