我使用rsync -a在文件系统上进行完整备份。 它输出到stderr是空的。 我应该做一些额外的检查,以validation备份是否成功?
例如,我怎样才能做校验来validation?
下次我用rsync做增量备份的时候,校验和的检查方式是一样的吗? 增量备份将与完整备份中未更改的文件具有硬连接,并且尽pipe增量备份成功,是否会使源和增量备份的校验和不同?
我的操作系统是Ubuntu 12.04。 谢谢。
如果你检查从rsync的退出代码,它返回0(成功),应该没有发生错误。 在shell脚本中,在rsync执行之后,它会在$? 为bourne-likes和$status为[t] csh。 stderr上没有输出同样是一个好兆头,但我相信它比退出代码less。
根据失败,使用--link-dest备份可能没有创build硬链接,但是执行校验和扫描会检测到这一点。 如果在rsync期间创build硬链接,则已经确定这些文件是相同的,并且根本不传送文件的数据。 在增量备份与完全备份中,硬连接文件不会有不同的校验和。
如果完全备份失败,则基于该完整备份的所有增量备份都将受到怀疑。 一般来说,无论完整备份完成,rsync都足够聪明地计算出差异,在这种情况下,您的后续增量将显着大于正常。 我仍然非常关心备份过程中的任何失败。
请注意, -c (校验和)将强制重新读取源系统和目标系统上的每个选定文件,而不pipedate戳记或文件大小如何,这将大大增加两端所需的时间和系统。
编辑:为了回答你的后续问题,除非运行time出现错误,例如用户SIGTERM的time ,否则time会将返回代码从其子代程序传递到其父代。
DIAGNOSTICS The time command returns when the program exits, stops, or is terminated by a signal. If the program exited normally, the return value of time is the return value of the program it executed and measured. Otherwise, the return value is 128 plus the number of the signal which caused the program to stop or terminate.