基本的rsync命令通常足以管理您的Linux备份,但其他选项可以使大型备份集更快、更强大。显然,备份一直是Linux世界的热门话题。早在2017年,DavidBoth就给Opensource.com的读者提供了一些使用rsync备份Linux系统的建议,并且在今年早些时候,他发起了一项调查,询问大家你在Linux中的/home目录是什么,你的主要备份策略是什么?在今年的另一项调查中,DonWatkins询问了您使用的开源备份解决方案。我的答案是rsync。我真的非常喜欢rsync!市场上有大量复杂的大型工具可能是管理磁带驱动器或库设备所必需的,但您可能只需要一个简单的开源命令行工具。rsync基础知识我为一个拥有大约35,000名开发人员和数十TB文件的全球组织管理二进制存储库。我经常一次移动或归档数百GB的数据。使用同步。这段经历让我对这个简单的工具充满信心。(所以是的,我在家里用它来备份我的Linux系统)基本的rsync命令很简单。rsync-avsourcedirdestinationdir实际上,各种教程中教授的rsync命令在大多数常见情况下都运行良好。但是,假设我们需要备份大量数据。例如,一个目录有2,000个子目录,每个子目录包含50GB到700GB的数据。在此目录上运行rsync可能会花费很多时间,特别是如果您使用验证选项(我倾向于使用)。在尝试同步大量数据或通过慢速网络连接时,我们可能会遇到性能问题。让我向您展示一些我用来确保良好性能和可靠性的方法。rsync的高级用法当rsync运行时:“正在发送增量文件列表。”如果您在网络上搜索此行,您会看到很多问题,例如为什么它一直在运行,或者为什么它似乎挂起。这是基于此场景的示例。假设我们有一个/storage目录,我们想把它备份到外接U盘,我们可以使用如下命令:rsync-cav/storage/media/WDPassport-c选项告诉rsync使用文件校验和代替时间戳来决定在更改的文件上,这通常需要更长的时间。为了分解/storage目录,我使用find命令同步子目录。这是一个示例:find/storage-typed-execrsync-cav{}/media/WDPassport\;这看起来没问题,但是如果/storage目录中有任何文件,它们将被跳过。那么我们如何同步/storage目录下的文件呢?还有一个细微差别,这些选项将导致rsync同步.目录,这是源目录本身;这意味着它将同步目录两次,这不是我们想要的。长话短说,我的解决方案是“双增量”脚本。当您的主目录有多个大目录(如音乐或家庭照片)时,这允许我将目录(例如/home)分解为单独的用户主目录。这是我的脚本示例:HOMES="alan"DRIVE="/media/WDPassport"forHOMEin$HOMES;文档/home/$HOMErsync-cdlptgov--delete。/$DRIVE/$HOME查找。-maxdepth1-typed-not-name"."-execrsync-crlptgov--delete{}/$DRIVE/$HOME\;donersync命令复制它在源目录中找到的文件和目录。但是,它会保留未处理的目录,因此我们可以使用find命令遍历它们。这是通过传递-d参数来完成的,该参数告诉rsync不要递归到目录中。-d,--dirs不递归地传输目录,然后find命令传递每个目录以单独运行rsync。rsync然后复制目录的内容。这是通过传递-r参数来完成的,该参数告诉rsync递归到目录中。-r,--recursive递归地进入目录这使rsync使用的增量文件保持在合理的大小。为方便起见,大多数rsync指南都使用-a(或存档)参数。这实际上是一个复合参数。-a,--archive归档模式;相当于-rlptgoD(没有-H,-A,-X)我传递的其他参数包含在a中;它们是-l、-p、-t、-g和-o。-l,--links将符号链接复制为符号链接-p,--perms保留权限-t,--times保留修改时间-g,--group保留组-o,--owner保留所有者(仅适用于超级管理员)--delete选项告诉rsync删除目标目录中源目录中不存在的所有文件。这样,运行的结果只是一个副本。您还可以排除由MacOS创建的.Trash目录或.DS_Store文件。-not-name".Trash*"-not-name".DS_Store"注意建议:rsync可能是一个破坏性命令。幸运的是,其睿智的创造者提供了“试运行”的能力。如果我们添加n选项,rsync将显示预期的输出但不写入任何数据。`rsync-cdlptgovn--delete./$DRIVE/$HOME`这个脚本适用于非常大的存储规模和高延迟或慢速连接。一如既往,我确信仍有改进的余地。如果您有任何建议,请在下面的评论中分享。
