在探索CentOS特有的部署标准备份计划的方法之前,我们先讨论标准级备份策略的典型注意事项.我们想要习惯的第一件事是 3-2-1备份规则.
在整个行业中,您经常会听到术语3-2-1备份模型.在实施备份计划时,这是一种非常好的方法. 3-2-1定义如下: 3 数据副本;例如,我们可能有工作副本;使用rsync将副本放入为冗余设计的CentOS服务器上;并且通过备份服务器上的数据进行旋转,异地USB备份. 2 不同的备份媒体.在这种情况下,我们实际上有三种不同的备份介质:笔记本电脑或工作站的SSD上的工作副本,RADI6阵列上的CentOS服务器数据以及USB驱动器上的异地备份. 1 异地数据副本;我们每晚都在异地旋转USB驱动器.另一种现代方法可能是云备份提供商.
完整数据恢复和裸机恢复通常通过多种方法完成,包括工作,配置关键运营服务器的生产磁盘映像,冗余备份遵守3-2-1规则的用户数据.甚至一些敏感文件可能存储在一个安全的防火保险箱中,但对受信任的公司人员的访问权限有限.
多相裸机还原和使用本机CentOS工具的数据恢复计划可能包含 :
dd用于制作和恢复生产磁盘 - 配置服务器的映像
rsync用于对所有用户数据进行增量备份
tar &安培; gzip用于存储带有密码和管理员备注的文件的加密备份.通常,这可以放在USB驱动器上,加密并锁定在高级管理员访问的保险箱中.此外,如果当前管理员赢得彩票并且消失到某个阳光明媚的岛屿,这可以确保其他人知道重要的安全凭证.
如果系统因硬件故障或灾难而崩溃,以下是恢复操作的不同阶段 :
建立一个具有配置的裸机映像的工作服务器
从备份还原到工作服务器
可以物理访问执行前两个操作所需的凭据
rsync 是一个很棒的实用程序,用于在本地或另一台服务器上同步文件目录. rsync 已被系统管理员使用多年,因此它非常精细,以便备份数据.在作者看来, sync 的最佳功能之一是它能够从命令行编写脚本.
在本教程中,我们将讨论rsync in各种方式;
探索和讨论一些常见选项
创建本地备份
通过SSH创建远程备份
恢复本地备份
rsync 以其目的命名:远程同步并且功能强大且使用灵活.
以下是基本的 rsync 通过ssh进行远程备份;
MiNi:~ rdc$ rsync -aAvz --progress ./Desktop/ImportantStuff/ rdc@192.168.1.143:home/rdc/ Documents/RemoteStuff/ rdc@192.168.1.143's password: sending incremental file list 6,148 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=23/25) 2017-02-14 16_26_47-002 - Veeam_Architecture001.png 33,144 100% 31.61MB/s 0:00:00 (xfr#2, to-chk=22/25) A Guide to the WordPress REST API | Toptal.pdf 892,406 100% 25.03MB/s 0:00:00 (xfr#3, to-chk=21/25) Rick Cardon Technologies, LLC..webloc 77 100% 2.21kB/s 0:00:00 (xfr#4, to-chk=20/25) backbox-4.5.1-i386.iso 43,188,224 1% 4.26MB/s 0:08:29 sent 2,318,683,608 bytes received 446 bytes 7,302,941.90 bytes/sec total size is 2,327,091,863 speedup is 1.00 MiNi:~ rdc$
以下同步通过LAN发送了近2.3GB的数据. rsync的优点在于它在块级别逐个文件地逐步工作.这意味着,如果我们只更改1MB文本文件中的两个字符,则在下次同步时只会在LAN上传输一个或两个块!
此外,可以禁用增量功能支持更多的网络带宽用于降低CPU利用率.如果在1Gb专用Backup-Lan上每10分钟不断复制几个10MB数据库文件,这可能是明智之举.原因是:这些将始终在变化,并且每10分钟会递增一次,并且可能会对远程CPU的负载产生负担.由于总传输负载不会超过5分钟,我们可能只希望完整地同步数据库文件.
以下是最常见的带有 rsync 的交换机 :
rsync syntax: rsync [options] [local path] [[remote host:remote path] or [target path
Switch | Action |
---|---|
- | 存档模式并假设-r,-p,-t, -g,-l |
- d | 仅同步目录树,无文件 |
- r | 递归到目录 |
- l | 将符号链接复制为符号链接 |
- p | 保留权限 |
- g | 保留组 |
- v | 详细输出 |
- z | 压缩网络链接 |
- X | 保留扩展属性 |
- A | 保留ACL |
- t | 保留时间戳 |
- W | 传输整个文件,而不是增量块 |
- u | 不要覆盖目标上的文件 |
- progress | 显示转移进度 |
- 删除 | 删除旧版本目标文件 |
- max-size = XXX | 要同步的最大文件大小 |
我个人对 rsync 的偏好是将文件从源主机备份到目标主机.例如,用于数据恢复的所有主目录,甚至是异地和云端的灾难恢复.
我们已经了解了如何将文件从一个主机传输到另一个主机.可以使用相同的方法在本地同步目录和文件.
让我们在root用户的目录中对/etc/进行手动增量备份.
首先,我们需要为同步备份创建一个关闭〜/root的目录 :
[root @ localhost rdc] #mkdir/root/etc_baks
然后,确保有足够的可用磁盘空间.
[root@localhost rdc]# du -h --summarize /etc/ 49M /etc/ [root@localhost rdc]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 43G 15G 28G 35% /
我们适合同步我们的整个/etc/目录 :
rsync -aAvr/etc//root/etc_baks/
我们同步的/etc/目录 :
[root@localhost etc_baks]# ls -l ./ total 1436 drwxr-xr-x. 3 root root 101 Feb 1 19:40 abrt -rw-r--r--. 1 root root 16 Feb 1 19:51 adjtime -rw-r--r--. 1 root root 1518 Jun 7 2013 aliases -rw-r--r--. 1 root root 12288 Feb 27 19:06 aliases.db drwxr-xr-x. 2 root root 51 Feb 1 19:41 alsa drwxr-xr-x. 2 root root 4096 Feb 27 17:11 alternatives -rw-------. 1 root root 541 Mar 31 2016 anacrontab -rw-r--r--. 1 root root 55 Nov 4 12:29 asound.conf -rw-r--r--. 1 root root 1 Nov 5 14:16 at.deny drwxr-xr-x. 2 root root 32 Feb 1 19:40 at-spi2 --{ condensed output }--
现在让我们做一个增量rsync :
[root@localhost etc_baks]# rsync -aAvr --progress /etc/ /root/etc_baks/ sending incremental file list test_incremental.txt 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1145/1282) sent 204620 bytes received 2321 bytes 413882.00 bytes/sec total size is 80245040 speedup is 387.77 [root@localhost etc_baks]#
仅复制了我们的 test_incremental.txt 文件.
让我们进行初始rsync完全备份到部署了备份计划的服务器上.此示例实际上是将Mac OS X Workstation上的文件夹备份到CentOS服务器. rsync 的另一个重要方面是它可以在rsync被移植到的任何平台上使用.
MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/ rdc@192.168.1.143:Documents/RemoteStuff rdc@192.168.1.143's password: sending incremental file list ./ A Guide to the WordPress REST API | Toptal.pdf Rick Cardon Tech LLC.webloc VeeamDiagram.png backbox-4.5.1-i386.iso dhcp_admin_script_update.py DDWRT/ DDWRT/.DS_Store DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin DDWRT/ddwrt_mod_notes.docx DDWRT/factory-to-ddwrt.bin open_ldap_config_notes/ open_ldap_config_notes/ldap_directory_a.png open_ldap_config_notes/open_ldap_notes.txt perl_scripts/ perl_scripts/mysnmp.pl php_scripts/ php_scripts/chunked.php php_scripts/gettingURL.php sent 2,318,281,023 bytes received 336 bytes 9,720,257.27 bytes/sec total size is 2,326,636,892 speedup is 1.00 MiNi:~ rdc$
我们现在已经将一个文件夹从工作站备份到运行RAID6卷的服务器上,并在场外存储了旋转的灾难恢复介质.使用rsync为我们提供了标准的3-2-1备份,只有一台服务器具有昂贵的冗余磁盘阵列和旋转的差异备份.
现在让我们使用rsync对同一文件夹进行另一次备份添加了一个名为 test_file.txt 的新文件.
MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/ rdc@192.168.1.143:Documents/RemoteStuff rdc@192.168.1.143's password: sending incremental file list ./ test_file.txt sent 814 bytes received 61 bytes 134.62 bytes/sec total size is 2,326,636,910 speedup is 2,659,013.61 MiNi:~ rdc$
如您所见,只有新文件通过 rsync 传送到服务器.差异比较是在逐个文件的基础上进行的.
需要注意的一点是:这只复制新文件:test_file.txt,因为它是唯一的文件变化. rsync使用ssh.我们不需要在任何一台机器上使用我们的root帐户.
简单,强大且有效, rsync 非常适合备份整个文件夹和目录结构.但是, rsync 本身并不会使该过程自动化.这是我们需要深入研究工具箱并找到最佳,小巧,简单的工具的地方.
使用 cronjobs 自动执行rsync备份使用SSH密钥进行身份验证时,必须设置SSH用户.这与cronjobs相结合使rsync能够以定时间隔自动完成.
DD是一个Linux实用程序,自Linux内核到达GNU实用程序之后就已存在.
dd 以最简单的方式复制所选磁盘区域的映像.然后提供复制物理磁盘的选定块的功能.因此,除非您有备份,否则一旦dd写入磁盘,所有块都将被替换.即使是高价位的专业级数据恢复,以前的数据丢失也超过了恢复能力.
使用 dd 制作可启动系统映像的整个过程如下跟随 :
使用可启动的Linux发行版从CentOS服务器启动
查找名称要成像的可引导磁盘的颜色
确定将存储恢复映像的位置
查找磁盘上使用的块大小
启动dd图像操作
在本教程中,为了时间和简洁,我们将创建一个ISO镜像来自CentOS虚拟机的主引导记录.然后我们将此图像存储在异地.如果我们的MBR损坏并需要恢复,则可以将相同的进程应用于整个可引导磁盘或分区.但是,本教程所需的时间和磁盘空间确实有点过分.
鼓励CentOS管理员熟练在测试环境中恢复完全可引导的磁盘/分区,执行裸机还原.当最终需要在管理者和几十个最终用户计算停机时间的现实生活中完成练习时,这将需要很大的压力.在这种情况下,10分钟计算出来的东西看起来像是永恒的,并且让人流汗.
注意 : 使用dd时,请确保不要混淆源卷和目标卷.您可以通过将备份位置复制到引导驱动器来销毁数据和可引导服务器.或者可能通过使用DD以非常低的级别复制数据来永远破坏数据.