如何使用rsync的大规模备份进行大型备份

发布者:上海IT外包来源:http://www.lanmon.net点击数:1373

显然,备份一直是Linux世界的热门话题。早在2017年,David Both就Opensource.com读者提出了一些使用rsync备份Linux系统的建议。今年早些时候,他发起了一项调查,要求每个人都在Linux中拥有你的/home目录。什么是主要的备份策略?在今年的另一项调查中,Don Watkins询问您使用哪种开源备份解决方案。
我的回复是rsync。我真的很喜欢rsync!市场上有大量大型复杂工具可能是管理磁带驱动器或存储库设备所必需的,但您只需要一个简单的开源命令行工具。
Rsync基础知识
我为一个全球性组织管理一个二进制存储库,其中包含大约35,000个开发人员和几十TB的文件。我经常一次移动或存档数百GB的数据。我正在使用rsync。这种经历让我对这个简单的工具充满信心。 (所以,是的,我在家里用它来备份我的Linux系统)
基本的rsync命令很简单。
Rsync -av源目录目标目录
实际上,各种指南中教授的rsync命令在大多数常见情况下都能正常工作。但是,假设我们需要备份大量数据。例如,一个包含2,000个子目录的目录,每个子目录包含50GB到700GB的数据。在此目录中运行rsync可能会花费大量时间,尤其是在使用校验和选项时(我更喜欢使用它)。
当我们尝试同步大量数据或通过慢速网络连接时,我们可能会遇到性能问题。让我向您展示一些用于确保良好性能和可靠性的方法。Rsync高级用法
rsync运行时出现的第一行是:“正在发送增量文件列表。”如果你在网上搜索这一行,你会看到许多类似的问题:为什么它一直在运行,或者为什么它似乎挂起。
以下是基于此场景的示例。假设我们有一个/storage目录,我们想要备份到外部USB磁盘。我们可以使用以下命令:
Rsync -cav/storage/media/WDPassport
-c选项告诉rsync使用文件校验和而不是时间戳来确定更改的文件,这通常需要更长的时间。为了分解/storage目录,我使用find命令在子目录中同步。这是一个例子:
查找/存储-type d -exec rsync -cav {}/media/WDPassport \;
这看起来很好,但是如果/storage目录中有任何文件,它们将被跳过。那么我们如何同步/storage目录中的文件呢?另一个细微差别是这些选项将导致rsync同步。目录,即源目录本身;这意味着它将两次同步子目录,这不是我们想要的。
总而言之,我的解决方案是一个“双增量”脚本。这允许我分解目录,例如,当您的主目录有多个大目录(例如音乐或家庭照片)时,/home目录被分解为单个用户主目录。
这是我的脚本的一个例子:
HOMES='阿兰'
DRIVE='/媒体/WDPassport'
适用于$ HOMES的HOME;做
Cd/home/$ HOME
Rsync -cdlptgov  - 删除。/$ DRIVE/$ HOME
找 。 -maxdepth 1-type d -not -name'。' -exec rsync -crlptgov --delete {}/$ DRIVE/$ HOME \;
完成
第一个rsync命令复制它在源目录中找到的文件和目录。但是,它会使目录保持未处理状态,因此我们可以遍历find命令。这是通过传递-d参数来完成的,该参数告诉rsync不要递归。
-d, -  dir传输目录而不递归
然后find命令通过每个目录分别运行rsync。 rsync复制目录的内容后。这是通过传递-r参数来完成的,该参数告诉rsync递归目录。-r, - 递归递归到目录中
这使rsync使用的delta文件保持合理的大小。
为简单起见,大多数rsync指南使用-a(或archive)参数。这实际上是一个复合参数。
-a, -  archive archive mode;相当于-rlptgoD(无-H,-A,-X)
我传递的其他参数包含在a中;这些是-l,-p,-t,-g和-o。
-l, - 链接将符号链接复制为符号链接
-p, -  perms保留权限
-t, - 保持修改时间
-g, - 组保留组
-o, - 所有者保留所有者(仅限超级管理员)
--delete选项告诉rsync删除目标目录中源目录中不存在的任何文件。通过这种方式,运行的结果只是一个副本。您还可以排除.Trash目录或MacOS创建的.DS_Store文件。
-not -name'.Trash *' -  not -name'.DS_Store'
注意
最后一个建议:rsync可能是一个破坏性的命令。幸运的是,它精明的创作者提供了“空洞”的能力。如果我们添加n选项,rsync将显示预期的输出而不写入任何数据。
`rsync -cdlptgovn --delete。/$ DRIVE/$ HOME`
此脚本适用于非常大的存储大小和高延迟或慢速链接。一如既往,我相信仍有改进的余地。如果您有任何建议,请在下面的评论中分享。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部