cron脚本中的Rsync行为

我有一个nfs设备,每天创建检查点(备份)。 我想使用Rsync将这些检查点复制到另一台设备(通过iSCSI连接Drobo)。 所以我在一个nfs共享上运行脚本,它运行良好。 以下是我有几个问题,需要花费很长时间才能多次尝试。

  1. 有多个共享要备份,我想循环遍历它们并在每个共享上运行脚本。 如何使用Rsync? Rsync作业是否会启动然后再次循环并同时运行第二个和第三个和第四个Rsync作业,或者Rsync会在结束并重新启动循环之前等待作业完成吗? 也许我只需要在循环中进行一些检查,直到Rsync完成后才重新启动。

  2. 提到最后一句话; 什么是Rsync返回我可以用来报告是否有错误或继续循环如果一切顺利?

  3. NFS设备创建的检查点根据日期命名。 Rsync将.ckpt *文件解压缩到一个静态命名的目录中。 由于源是不同的目录,但内部的文件是相同的,并且目标名称相同,Rsync是否仍然只复制差异?

这是rsync工作: rsync -az $NEWCHKPT/* /drobo/bak.${share}/${share}_daily

我知道这是post要求很多。 任何意见是极大的赞赏。

  1. 取决于你如何编写循环; 除非使用&符号对rsync命令进行后台处理,否则rsync命令将按顺序运行。

  2. rsync将返回有用的退出状态。 这些列在rsync的手册页中。 man rsync | less '+/^EXIT VALUE' man rsync | less '+/^EXIT VALUE' 。 您必须决定是否要在一个失败时中止整个脚本,或者尝试运行其他脚本,然后在最后为失败的脚本提供错误摘要。

  3. rsync有多种方法来决定是否复制文件。 默认设置是检查源文件和目标文件的大小和上次修改时间。 如果两者都匹配,则会跳过复制该文件。 这通常足够好。