我想设置标准的rdiff备份到远程服务器。 但是networking连接能力的数据量非常大。 因此,我需要一些方法来做没有rdiff备份的数据的初始副本(因为没有办法恢复传输数小时后失败的初始传输)。
我的想法是最初在物理媒体上传输数据到远程服务器。 在传输之后,我通过rync同步数据以确保它们是相同的。 现在我想做初始rdiff备份。 当我运行rdiff备份时,有很多行
Getting delta (with hash) of XY
就好像目录不一样。 这些线是什么意思? 他们是否意味着远程rdiff备份决定文件不相同,所以有delta差异转移?
有没有其他的方式来做大数据的初始传输,在失败的情况下可以恢复(而不是从头开始重启)?
我用双重性而不是rdiff-backup但从我的理解你的问题在这里:
我的想法是最初在物理介质上传输数据到远程服务器。 在传输之后,我通过rync同步数据以确保它们是相同的。 现在我想做初始rdiff备份。
解决scheme有效
最简单的解决scheme是将rdiff-backup到备份源的物理介质上,而不是复制和rsyncing数据。 然后通过物理介质将备份传输到远程服务器,并将其用作远程备份的备份目录。 因为复制和rsyncing时仍然没有初始备份,程序需要对所有文件进行交叉检查并保存元数据。 因此Getting delta... 这可能不是传输整个文件,只是大量的校验和。
解决scheme不起作用
可能值得从物理媒体进行rdiff-backup到远程服务器的远程rdiff-backup 。 虽然如果rdiff-backup使用一些本地元数据(重复),您(或它)将不得不将其传回或重新创build。
根据OP的工作进行编辑。
你真的受rdiff-backup的约束,或者你可以使用普通的rsync来做增量备份吗?
这是一个保存4个增量备份的小脚本。 您可以轻松更改以保留9或99增量备份或任何其他号码。
它使用rsync的--link-dest选项,如果文件不变,则创build硬链接。
FROM=$HOME TO=/var/backups LINKTO=--link-dest=$TO/`/usr/bin/basename $FROM`.1 OPTS="-a --delete -delete-excluded" NUMBER_OF_BACKUPS=4 /usr/bin/find $TO -maxdepth 1 -type d -name "`/usr/bin/basename $FROM`.[0-9]"|\ /usr/bin/sort -rn| while read dir do this=`/usr/bin/expr match "$dir" '.*\([0-9]\)'`; let next=($this+1)%$NUMBER_OF_BACKUPS; basedirname=${dir%.[0-9]} if [ $next -eq 0 ] ; then /bin/rm -rf $dir else /bin/mv $dir $basedirname.$next fi done /usr/bin/rsync $OPTS $LINKTO $FROM/ $TO/`/usr/bin/basename $FROM.0`
使用该脚本,您可以先手动rsync数据,然后将脚本configuration为定期启动。