可恢复存档

可恢复存档

我需要在 NFS 服务器上归档一些大目录结构。不太可能很快就需要它们(如果有的话)——它们只是出于政策原因而被保留。

为此,我正在制作 tarball,并可能最终将它们写到磁带上。

只有一个问题 - 我在处理非常大的卷(10TB+)时遇到了一些困难 - 运行时间足够长,以至于它会被放置过夜,并且在某些情况下它似乎“停滞” - 这不太容易讲述一个有背景的tar xvfz

然后,诸如空间不足、网络中断等问题意味着,对于在单个会话中未完成的事情,我不完全确定存档是a)完整的和b)完全有效的。

因此,希望得到一些建议 - 理想情况下,我想要的是可恢复的东西,例如 rsync,我可以多次传递副本,而无需重新开始。

有没有办法“rsync 到 tar.gz”?验证文件写入的不太昂贵的方法?我目前正在研究“提取、shasum 和比较”,但这也是一个相当昂贵/密集的过程。

答案1

也许拆分备份将是解决您问题的一个步骤?

tar cvzf - /your/dir/ | split --bytes=1000MB - backup.tar.gz

或者你可以看看dar,也许。它具有内置的拆分功能: http://dar.linux.free.fr/doc/Features.html

我还找到了一些有关如何恢复中断的dar备份作业的信息,这些信息可能会有所帮助:

http://sourceforge.net/p/dar/mailman/message/30863378/

答案2

要验证操作是否成功,只需&& echo在每个tar操作中添加一些内容即可:

tar cvzf target.tar "$source" && echo "$source tarred successfully" >> progress.log

它不会帮助你恢复,但至少,这样你会知道你是否tar有效。

另一件可能有帮助的事情是首先 gzip 和然后柏油:

find "$source" -type f -exec gzip {} + && tar cvf "$source".tgz "$source" && 
    echo "$source tarred successfully" >> progress.log

这样,您就可以轻松检查文件是否被压缩。该tar操作相对便宜,压缩会减慢速度。通过将两者分离,您将能够获得更细粒度的控制。

相关内容