Linux学习-备份的种类、频率与工具的选择
完整备份之累积备份 (Incremental backup)
- 还原的考虑
如果是完整备份的话。若硬件出问题导致系统损毁时,只要将完整备份拿出来,整个给他倾倒回去硬盘, 所有事情就搞定了!有些时候 (例如使用 dd 指令) 甚至连系统都不需要重新 安装!反正整个系统都给他倒回去,连同重要的 Linux 系统文件等,所以当然也就不需要重新安装。
那你知道完整备份的定义了吧?没错!完整备份就是将根目录 (/) 整个系统通通备份下来的意思!不 过,在某些场合底下,完整备份也可以是备份一个文件系统 (filesystem)!
- 累积备份的原则
虽然完整备份在还原方面有相当良好的表现,但是我们都知道系统用的越久,数据量就会越大!如此 一来, 完整备份所需要花费的时间与储存媒体的使用就会相当麻烦~所以,完整备份并不会也不太可能每天都进行的!那你想要每天都备份数据该如何进行呢?有两种方式啦,一种是本小节会谈到的累积备份,一种则是下个小节谈到的差异备份。
所谓的累积备份,指的是在系统在进行完第一次完整备份后,经过一段时间的运作, 比较系统与备 份文件之间的差异,仅备份有差异的文件而已。而第二次累积备份则与第一次累积备份的数据比较, 也是仅备份有差异的数据而已。如此一来,由于仅备份有差异的数据,因此备份的数据量小且快速! 备份也很有效率。 我们可以从下图来说明:
假如我在星期一作好完整备份,则星期二的累积备份是系统与完整备份间的差异数据;星期三的备份 是系统与星期二的差异数据, 星期四的备份则是系统与星期三的差异数据。你得要注意的是,星 期二的数据是完整备份加第一次累积备份, 星期三的数据是完整备份加第一次累积与第二次累积备 份,星期四的数据则是星期一的完整备份加第一次加第二次加第三次累积备份。 由于每次都仅与前 一次的备份数据比较而已,因此备份的数据量就会少很多!
那如何还原?经过上面的分析,我们也会知道累积备份的还原方面比较麻烦! 假设你的系统在星期 五的时候挂点了!那你要如何还原?首先,你必须要还原星期一的完整备份,然后还原星期二的累积 备份, 再依序还原星期三、星期四的累积备份才算完全复原!那如果你是经过了九次的累积备份, 就得要还原到第九次的阶段, 才是最完整的还原程序!
- 累积备份使用的备份软件
完整备份常用的工具有 dd, cpio, xfsdump/xfsrestore 等等。因为这些工具都能够备份装置与特殊文件! dd 可以直接读取磁盘的扇区 (sector) 而不理会文件系统,是相当良好的备份工具!不过缺点就是慢 很多! cpio 是能够备份所有档名,不过,得要配合 find 或其他找文件名的指令才能够处理妥当。 以上两个都能够进行完整备份, 但累积备份就得要额外使用脚本程序来处理。可以直接进行累积备 份的就是 xfsdump 这个指令啰!
# 1. 用 dd 来将 /dev/sda 备份到完全一模一样的 /dev/sdb 硬盘上:
[root@study ~]# dd if=/dev/sda of=/dev/sdb
# 由于 dd 是读取扇区,所以 /dev/sdb 这颗磁盘可以不必格式化!非常的方便!
# 只是你会等非常非常久!因为 dd 的速度比较慢!
# 2. 使用 cpio 来备份与还原整个系统,假设储存媒体为 SATA 磁带机:
[root@study ~]# find / -print | cpio -covB > /dev/st0 <==备份到磁带机
[root@study ~]# cpio -iduv < /dev/st0 <==还原
假设 /home 为一个独立的文件系统,而 /backupdata 也是一个独立的用来备份的文件系统,那如何 使用 dump 将 /home 完整的备份到 /backupdata 上呢?可以像底下这样进行看看:
# 1. 完整备份
[root@study ~]# xfsdump -l 0 -L 'full' -M 'full' -f /backupdata/home.dump /home
# 2. 第一次进行累积备份
[root@study ~]# xfsdump -l 1 -L 'full-1' -M 'full-1' -f /backupdata/home.dump1 /home
除了这些指令之外,其实 tar 也可以用来进行完整备份啦!举例来说,/backupdata 是个独立的文件 系统, 你想要将整个系统通通备份起来时,可以这样考虑:将不必要的 /proc, /mnt, /tmp 等目录不 备份,其他的数据则予以备份:
[root@study ~]# tar --exclude /proc --exclude /mnt --exclude /tmp \
> --exclude /backupdata -jcvp -f /backupdata/system.tar.bz2 /
完整备份之差异备份 (Differential backup)
差异备份与累积备份有点类似,也是需要进行第一次的完整备份后才能够进行。只是差异备份指的是: 每次的备份都是与原始的完整备份比较的结果。所以系统运作的越久,离完整备份时间越长, 那么 该次的差异备份数据可能就会越大!差异备份的示意图如下所示:
差异备份常用的工具与累积备份差不多!因为都需要完整备份嘛!如果使用 xfsdump 来备份的话, 那么每次备份的等级 (level) 就都会是 level 1 的意思啦!当然啦,你也可以透过 tar 的 -N 选项来 备份喔!如下所示:
[root@study ~]# tar -N '2015-09-01' -jpcv -f /backupdata/home.tar.bz2 /home
# 只有在比 2015-09-01 还要新的文件,在 /home 底下的文件才会被打包进 home.bz2 中!
# 有点奇怪的是,目录还是会被记录下来,只是目录内的旧文件就不会备份。
此外,你也可以透过 rsync 来进行镜像备份喔! 这个 rsync 可以对两个目录进行镜像 (mirror) ,算 是一个非常快速的备份工具!简单的指令语法为:
[root@study ~]# rsync -av 来源目录 目标目录
# 1. 将 /home/ 镜像到 /backupdata/home/ 去
[root@study ~]# rsync -av /home /backupdata/
# 此时会在 /backupdata 底下产生 home 这个目录来!
[root@study ~]# rsync -av /home /backupdata/
# 再次进行会快很多!如果数据没有更动,几乎不会进行任何动作!
关键数据备份
完整备份虽然有许多好处,但就是需要花费很多时间!所以,如果在主机提供的服务并不是一定要 24 小时提供的前提下, 我们可以仅备份重要的关键数据即可。由于主机即使当机个一两天可能也不会 影响到你的正常生活时, 仅备份关键数据就好啦!不需要整个系统都备份。仅备份关键资料是有许多好处的! 由于完整备份可能是在系统运作期间进行,不但会花费非常多时间,而且如果备份当时
系统已经被攻破, 那你备份的数据是有问题的,那还原回去也是有问题的系统啊!
如果仅是备份关键数据而已,那么由于系统的绝大部分执行档都可以后来重新安装,因此若你的系统 不是因为硬件问题, 而是因为软件问题而导致系统被攻破或损毁时,直接捉取最新的 Linux distribution ,然后重新安装, 然后再将系统数据 (如账号/密码与家目录等等) 与服务数据 (如 www/email/crontab/ftp 等等) 一个一个的填回去!
不过,备份关键数据最麻烦的地方其实就是在还原啦!上述的还原方式是你必须要很熟悉系统运作, 否则还原得要花费很多时间的!尤其近来的 Linux 强调安全性,所以加入 SELinux 了,你如果要从 旧版的 Linux 升级到新版时, 原本若没有 SELinux 而换成新版则需要启动 SELinux 时,那个除错 的时间会花很长一段日子哩! 这是仅备份关键数据的一些优缺点。
备份关键数据使用 tar 来处理了!如果想要分门别类的将各种不同的服务在不同的时间备份 使用不同档名, 配合 date 指令是非常好用的工具!例如底下的案例是依据日期来备份 mariadb 的 数据库喔!
[root@study ~]# tar -jpcvf mysql.`date +%Y-%m-%d`.tar.bz2 /var/lib/mysql
备份是非常重要的工作,你可不希望想到才进行吧?交给系统自动处理就对啦!请自己撰写 script , 配合 crontab 去执行吧!这样子,备份会很轻松。
Linux学习-备份的种类、频率与工具的选择的更多相关文章
- Linux学习-备份要点
备份资料的考虑 老实说,备份是系统损毁时等待救援的救星!因为你需要重新安装系统时, 备份的好坏会影响到你 系统复原的进度!事实上,系统有可能由于不预期的伤害而导致系统发生错误! 什么是不预期的伤害呢? ...
- Linux学习-备份策略
每部主机的任务都不相同,重要的数据也不相同,重要性也不一样,因此,每个人的备份思考角度都不一样! 备份分为两大部分,一个是每日备份经常性变动的重要数据, 一个则是每周备份就不常变动的信息.这个时候我就 ...
- linux学习(3)——vim文本编辑工具
(三) vi与vim的最大区别就是编辑一个文本vi不显示颜色,vim显示颜色. 安装: yum install -y vim-enhance Vim有三种模式 A:一般模式 上下左右光标 k j h ...
- Linux学习-核心编译的前处理与核心功能选择
硬件环境检视与核心功能要求 根据自己的需求来确定编译的选项 保持干净原始码: make mrproper 我们还得要处理一下核心原始码底下的残留文件才行!假设我们是第一次 编译, 但是我们不清楚到底下 ...
- linux学习书籍推荐《鸟哥的Linux私房菜》下载
下载地址:点我 <鸟哥的Linux私房菜:基础学习篇>是具有知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>的最新版,全面而详细地介绍了Linux操作系统.< ...
- Linux系统备份还原工具1(DD)(应用实例)
DD使用教程:http://www.cnblogs.com/EasonJim/p/7442223.html 以下实例没经过大量测试,可能在一些机器上不会有效. 一般围绕以下几点进行设置: 1.dd完后 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- Linux学习历程(持续更新整理中)
1.文件目录操作命令 (1) ls 显示文件和目录列表 a ls -l 显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件' 显示指定目录 ...
- Linux dd——备份命令
Linux学习笔记之备份命令dd 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的数据写成硬 ...
随机推荐
- 使用Spring Security OAuth2进行简单的单点登录
1.概述 在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现SSO - 单点登录. 我们将使用三个单独的应用程序: 授权服务器 - 这是中央身份验证机 ...
- 数据绑定以及Container.DataItem几种方式与用法分析
灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp:ListBox id="ListBox1" ...
- P4876 近似排列计数50
时间限制:1s 内存限制:256MB [问题描述] 对于一个1-n的排列,如果满足第i个数|ai-i|<=k,则称该排列为K-近似排列. 现在排列的若干位置已经确定,你需要计算剩下的数有多少种排 ...
- 第十七章 提升用户体验 之 使用MVC扩展功能控制程序行为
1. 概述 ASP.NET MVC具有很好的扩展性,每一个核心功能都可以被扩展.重写 和 定制. 本章内容包括:实现MVC过滤器和controller工厂.使用 action results,view ...
- python基础---有关nparray----切片和索引(一)
Numpy最重要的一个特点就是其N维数组对象,即ndarray,该对象是一种快速而灵活的大数据集容器,实际开发中,我们可以利用这种数组对整块数据执行一些数学运算. 有关ndarray,我们就从最简单的 ...
- springboot+shiro+cas实现单点登录之shiro端搭建
github:https://github.com/peterowang/shiro-cas 本文如有配置问题,请查看之前的springboot集成shiro的文章 1.配置ehcache缓存,在re ...
- 一键部署基于SVN开源版本控制系统
https://market.azure.cn/Vhd/Show?vhdId=11889&version=12961 产品详情 产品介绍Subversion作为新一代的开源版本控制工具,Sub ...
- codevs 4093 EZ的间谍网络
时间限制: 10 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 由于外国间谍的大量渗入,学校安全正处于高度的危机之中.YJY决定挺身而作出反抗 ...
- 在CesiumVR基础上实现3D左右立体视觉
整体思路 在VR模块的基础上调整视差,使其随距离发生变化: 左右分屏时,需要将左右屏的横向进行1/2压缩:这是因为3D-TV在对左右格式影像进行合并时,会进行拉伸: 左屏幕的相机相对于原来的(右屏)相 ...
- JNI接口的使用(简单版)
详见 http://b6ec263c.wiz03.com/share/s/2SX2oY0nX4f32CY5ax1bapaL2Qtc5q0tIQjG2yfwaU1MX4Ye