我想设置标准 rdiff-backup 到远程服务器。但是数据量对于互联网连接的容量来说太大了。因此我需要某种方式来在没有 rdiff-backup 的情况下进行数据的初始复制(因为没有办法恢复经过数小时的传输后失败的初始传输)。
我的想法是先将物理介质上的数据传输到远程服务器。传输后,我通过 rync 同步数据以确保它们相同。现在我想进行初始 rdiff-backup。当我运行 rdiff-backup 时,有很多行
Getting delta (with hash) of XY
好像目录不相同。这些行到底是什么意思?它们是否意味着远程 rdiff-backup 认为文件不相同,因此传输了增量差异?
有没有其他方法可以进行大量数据的初始传输,并且在发生故障时可以恢复(而不是从头重新启动)?
答案1
我使用 duplicity 而不是rdiff-backup
但据我了解,您的问题是在这里:
我的想法是先将物理介质上的数据传输到远程服务器。传输后,我通过 rync 同步数据以确保它们相同。现在我想进行初始 rdiff 备份。
有效的解决方案
最简单的解决方案是rdiff-backup
将备份文件复制到备份源的物理介质上,而不是复制和 rsync 数据。然后通过物理介质将备份传输到远程服务器,并将其用作远程备份的备份目录。因为复制和 rsync 时仍然没有初始备份,程序需要交叉检查所有文件并保存元数据。因此Getting delta...
。这可能不是传输整个文件,只是大量的校验和。
无效的解决方案
可能值得尝试rdiff-backup
将物理媒体复制到目录中,然后rdiff-backup
从远程服务器远程复制到该目录中。尽管它rdiff-backup
也使用了一些本地元数据(duplicity 确实如此),但您(或它)必须将其传输回去或重新创建。
根据 OP 的工作内容进行编辑。
答案2
您是否真的受 rdiff-backup 的约束,或者您可以使用普通的 rsync 进行增量备份?
这是一个保存 4 个增量备份的小脚本。您可以轻松将其更改为保存 9 个或 99 个增量备份或任何其他数字。
它使用--link-dest
rsync 的选项,如果文件未改变则创建硬链接。
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 您的数据,他们将脚本配置为定期启动。