2019独角兽企业重金招聘Python工程师标准>>>

备份一直是 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 命令。这是一个例子:

find /storage -type d -exec rsync -cav {} /media/WDPassport \;

这看起来可以,但是如果 /storage 目录有任何文件,它们将被跳过。因此,我们如何同步 /storage 目录中的文件呢?同样有一个细微的差别是这些选项将造成 rsync 会同步 . 目录,该目录是源目录自身;这意味着它会同步子目录两次,这并不是我们想要的。

长话短说,我的解决方案是一个 “双-递增”脚本。这允许我分解一个目录,例如,当你的家目录有多个大的目录,例如音乐或者家庭照片时,分解 /home 目录为单个的用户家目录。

这是我的脚本的一个例子:

HOMES="alan"
DRIVE="/media/WDPassport"for HOME in $HOMES; do
cd /home/$HOME
rsync -cdlptgov --delete . /$DRIVE/$HOME
find . -maxdepth 1 -type d -not -name "." -exec rsync -crlptgov --delete {} /$DRIVE/$HOME \;
done

第一个 rsync 命令拷贝它在源目录中发现的文件和目录。然而,它将目录留着不处理,因此我们能够通过 find 命令迭代它们。这通过传递 -d 参数来完成,它告诉 rsync 不要递归目录。

-d, --dirs 传输目录而不递归

然后 find 命令传递每个目录来单独运行 rsync。之后 rsync 拷贝目录的内容。这通过传递 -r 参数来完成,它告诉 rsync 要递归目录。

-r, --recursive 递归进入目录

这使得 rsync 使用的增量文件保持在一个合理的大小。

大多数 rsync 指南为了简便使用 -a (或者 archive) 参数。这实际是一个复合参数。

-a, --archive 归档模式;等价于 -rlptgoD(没有 -H,-A,-X)

我传递的其他参数包含在 a 中;这些是 -l、-p、-t、-g和 -o。

-l, --links 复制符号链接作为符号链接
-p, --perms 保留权限
-t, --times 保留修改时间
-g, --group 保留组
-o, --owner 保留拥有者(只适用于超级管理员)

--delete 选项告诉 rsync 删除目的地目录中所有在源目录不存在的任意文件。这种方式,运行的结果仅仅是复制。你同样可以排除 .Trash 目录或者 MacOS 创建的 .DS_Store 文件。

-not -name ".Trash*" -not -name ".DS_Store"

注意

最后一条建议: rsync 可以是破坏性的命令。幸运的是,它的睿智的创造者提供了 “空运行” 的能力。如果我们加入 n 选项,rsync 会显示预期的输出但不写任何数据。

`rsync -cdlptgovn --delete . /$DRIVE/$HOME`

这个脚本适用于非常大的存储规模和高延迟或者慢链接的情况。一如既往,我确信仍有提升的空间。如果你有任何建议,请在下方评论中分享。

转载于:https://my.oschina.net/u/3585265/blog/3054168

如何使用 rsync 备份 Linux 系统的一些介绍相关推荐

  1. 如何备份linux系统(转)

    如何备份linux系统 不像Windows,Linux不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中.来实施这一方法,用这个成为根用户: sudo su 接着去 ...

  2. 备份Linux系统的数据到坚果云

    坚果云支持webdav,则可以在Linux下使用命令行或脚本将数据备份到坚果云空间. 开启坚果云WebDAV服务 "账户信息"--"安全选项" 方式1:使用ca ...

  3. 秃头警告之——使用mondo rescue备份linux系统ISO镜像的踩坑历程

    使用mondo rescue备份linux系统制作ISO镜像 使用背景 工作原因需要把Centos7系统的软件配置和文件打包做一个iso镜像文件,用于后期系统设备量产.谷歌了相关方法,看到有很多博主都 ...

  4. linux cadaver 命令,备份Linux系统的数据到坚果云

    坚果云支持webdav,则可以在Linux下使用命令行或脚本将数据备份到坚果云空间. 开启坚果云WebDAV服务 "账户信息"--"安全选项" 方式1:使用ca ...

  5. 如何备份Linux系统磁盘

    如何备份Linux系统磁盘 备份Linux系统的策略有很多,比如使用dd命令直接克隆硬盘分区: sudo dd if=/dev/sda1 of=/dev/sdb1 或者,使用tar将硬盘上的文件打包: ...

  6. gost备份linux系统,linux系统GOST备份教程.doc

    linux系统GOST备份教程 linux系统GHOST备份Windows系统备份可以用ghost工具软件完成,Linux系统不能完全依赖于ghost工具,一则是ghost本身是有版权的软件,二则gh ...

  7. 再生龙工具备份Linux系统

    再生龙工具备份Linux系统 下载再生龙工具 官网链接:http://clonezilla.nchc.org.tw/intro/ 在这里插入图片描述 档案类型选择ISO 制作启动盘 将下载的ISO文件 ...

  8. Linux系统Logrotate服务介绍

    Linux系统Logrotate服务介绍 本文转自 民工哥 51CTO博客,原文链接:http://blog.51cto.com/mingongge/1957688

  9. linux软件包管理 pdf,中标麒麟Linux系统软件包管理介绍(22页)-原创力文档

    中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统软件包管理介绍 技术创新,变革未来 本章目标 •了解中标麒麟Linux服务器操作系统中应用程序的 组成: •了解中标麒麟Linux服务器 ...

最新文章

  1. mantis在windows下的安装
  2. 配置mysql-cluster群集高可用(三)
  3. 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
  4. 201521123031 《Java程序设计》第6周学习总结
  5. 什么是ASP.NET Core静态Web资产?
  6. 【每日一题】8月7日题目精讲—双栈排序
  7. Spring Boot – spring.config.name –案例研究
  8. Linux手机适配,nginx同时适配PC版和手机移动版
  9. 操作系统(王道笔记第三章内存)
  10. 原创|面试官:线上服务器CPU占用率高如何排查定位问题?
  11. 如何改变炒股频繁交易的毛病?
  12. 选ac+ap还是mesh方案?
  13. 20201007:力扣209周周赛题解记录(上)
  14. NYOJ 822 画图
  15. Photosho cs6安装字体教程
  16. 如果已经安装过个人版Delphi2007,如何安装Delphi2007企业版
  17. 欧几里得几何(1)Alpha
  18. 华为MateBook电脑连接蓝牙鼠标使用失灵解决方法
  19. gitee生成公钥报错
  20. HTML04-form表单

热门文章

  1. 【技术综述】基于弱监督深度学习的图像分割方法综述​
  2. 【模型解读】从2D卷积到3D卷积,都有什么不一样
  3. 中国全装修行业发展形势及投资决策建议报告2022版
  4. 中粮集团对话农民丰收节交易会-万祥军:订单农业丰收经
  5. Android OpenGL ES抗锯齿
  6. 006---Linux用户、群组和权限
  7. git fatal: 拒绝合并无关的历史
  8. 探秘小程序(9):父页面与自定义组件交互
  9. PHP 防XSS跨站攻击
  10. codevs 2865 天平系统1