用于备份的 rsync 是否危险?

用于备份的 rsync 是否危险?

在我们的研究小组中,我们需要备份在 MRI 扫描仪上获取的数据,以便保留任何曾经获取的扫描数据(即使数据可能由于空间或其他原因从扫描仪中删除)。我们称之为保险库

存储到保险库,一台单独的机器通过 nfs 挂载扫描仪的数据分区,并将数据复制到自己的本地备份硬盘上:

rsync -au /nfsmount/data /pvbackup-vault >> $LOGFILE

我的问题是:这安全吗?我们的数据有时会在之前处理过一次后重新处理。所以我想要 -u 标志。

对于实际的原始数据(这是神圣的),我可以预见一个问题:由于某些错误/失误/不可预见的情况,扫描仪上的文件会被覆盖,然后保险库将被覆盖。我不确定如何防止这种情况发生。一方面,我希望允许重新处理数据,甚至重新获取数据;另一方面,我希望创建一个保险库至少在数据方面,不受未来变化的影响。我应该标记这些情况并手动处理吗?很乏味。

笔记: 我采用了不同的增量策略(rsnapshot)来防止用户错误,可以恢复无意中删除/更改的、可追溯到一定小时/天/周/月内的数据。

笔记2: 也许我应该提一下,我们目前处理的数据量约为 250GB,每周新获取的数据量约为 10GB。因此,DVD 不再是替代品……

答案1

您做的第一部分是正确的,如果硬件扫描仪发生问题,请将其中的数据取出。第二部分应该是备份中间备份位置。换句话说,您要么设置辅助 rsync 作业到另一个最终存放/备份位置,要么实际让备份程序介入并定期进行复制,以用于更永久/存档的目的。

通常,您会做两件事来保存数据......

  1. 立即进行磁盘到磁盘备份(使用 rsync 的扫描仪)
  2. 将档案备份磁盘放到磁带上,或者一些较新的方法只是另一种磁盘到磁盘或磁盘到网络机制。

这可确保您的扫描仪数据受到保护,并且您可以长期存档所有发生的情况。在存档运行完成之前,请将您的磁盘到磁盘视为临时备份,您的存档是神圣的。

答案2

带有 --link-dest 选项的 rsync 可能很有用。它为每次备份运行创建一个目录。自上次运行以来未更改的文件将硬链接到已经存在的版本。因此,每次运行后您都会获得完整的正常文件夹结构(您可以直接浏览它),而无需复制未更改的数据。

多年来,我每天使用以下类型的代码片段来备份超过 1 TB 的数据。以这种方式使用 rsync 的 linux-gui 工具是 backintime http://backintime.le-web.org/

#!/bin/bash

# when saving this as "rsync-history" call it with arguments
# sh rsync-history user@host-to-be-backed-up:/directory-on-host/    where-to-save-the-backup/ 

source=$1
target_fileprefix="$2""$source"

#keep N generations
bigger=100


rm -vrf "$target_fileprefix""$bigger"

#move 1 to 2, 2 to 3...
while [ $bigger -gt 0 ]
do
smaller=$(($bigger-1))      
mv  -f "$target_fileprefix""$smaller"\
"$target_fileprefix""$bigger" 2>>/dev/null
bigger=$(($bigger-1))
done

mkdir -p "$target_fileprefix""0" 

rsync \
-a --whole-file --delete \
--link-dest=$target_fileprefix"1"/.  $source. $target_fileprefix"0"/.  

相关内容