我想尝试针对目标主机列表以批处理模式执行 rsync。假设所有目标主机都处于状态 X。我将针对该列表中的参考主机创建 rsync 批处理文件,并将其应用于剩余主机。最大的问题是:如果这些剩余主机中的一个与参考主机的状态不同(这可能是因为上次我同步所有主机时它不在循环中),会发生什么情况。rsync 会告诉我发生了错误吗?还是它会愉快地应用批处理文件,在未同步的主机上产生垃圾?有什么经验吗?
答案1
从rsync 命令
读取批处理选项要求它正在更新的目标树与用于创建批处理更新文件集的目标树相同。当
发现目标树之间存在差异时,可能会丢弃更新并显示警告(如果文件似乎已经是最新的),或者可能会尝试文件更新,
然后,如果文件验证失败,则丢弃更新并显示错误。这意味着如果命令中断,重新运行读取批处理操作应该是安全的。如果您希望强制始终尝试批处理更新而不管文件的大小和日期,请使用 -I 选项(读取批处理时)。如果发生错误,目标树可能处于部分更新状态。在这种情况下,可以以 rsync 的常规(非批处理)操作模式使用来修复目标树。