在rhel7中,默认的文件系统类型为xfs。
装好系统后默认有xfs文件系统的备份工具xfsdump和恢复工具xfsrestore,这也是该技术主要用到的命令
我是最小化安装,所以没有xfsdump工具,需要自行安装:
[root@sylar ~]# yum search xfsdump
提示需要安装xfsdump.x86_64
[root@sylar ~]# yum install xfsdump.x86_64
提示安装完毕,开始测试。
Ⅰ、新建一个分区用于做测试环境
①分区:
[root@sylar ~]# fdisk /dev/sdb1
②格式化
⑴强制分区信息读入内存:
[root@sylar ~]# partprobe
⑵查看分区信息:
[root@sylar ~]# cat /proc/partitions
⑶进行格式化:
[root@sylar ~]# mkfs.xfs /dev/sdb1
③挂载
[root@sylar ~]# mount /dev/sdb1 /media
查看是否挂载成功:
[root@sylar ~]# mount | grep "/dev/sdb1"
[root@sylar ~]# df -Th | tail -1
④在挂载点目录里面创建一些测试文件
[root@sylar ~]# cp -a /etc/passwd /etc/shadow /boot /media
[root@sylar ~]# ls /media
boot passwd shadow
到这,我们的测试环境已经创建完成,下面进行文件系统的备份。
Ⅱ、xfs文件系统的完全备份
xfs文件系统备份使用的命令是xfsdump,用法如下:
xfsdump [ options ] -f dest [ -f dest2 … ] filesystem
该命令的选项说明:
-f:其后指定备份文件的存放位置
-L:指定备份会话标签(免交互,不指定时需要在命令执行过程中指定)
-M:指定设备标签(免交互,不指定时需要在命令执行过程中指定)
-s:指定需要备份的文件(见Ⅳ)
-I:查看文件系统所有备份的详细信息
举个例子
完全备份例子
[root@sylar ~]# xfsdump -f /opt/xfsdump_sdb1 /media -L xfsdump_sdb1 -M media0
赶紧到/opt目录下视察一下有没有备份文件生成:
[root@sylar ~]# ll -h /opt
-I选项来一发,查看备份的详细信息:
[root@sylar ~]# xfsdump –I
看最后一句:备份状态:成功
液,完全备份完成,so easy!
Ⅲ、xfs文件系统的完全恢复
xfs文件系统的恢复用到的命令是xfsrestore,用法与xfsdump类似:
xfsrestore [ options ] -f source [ -f source2 … ] dest
选项:
-f:其后指定备份文件的存放位置
-s:恢复备份文件中指定的文件(见Ⅳ)
-t:可查看文件的内容及其详细信息
下来举例子就是干:
①先删除挂载点目录下的所有文件(模拟文件丢失):
[root@sylar ~]# rm -rf /media/*
②憋慌,咱们有备份,现在就来还原它(↓_↓)
⑴先等一等,在恢复之前先来看看备份文件里面都有啥:
[root@sylar media]# xfsrestore -f /opt/xfsdump_sdb1 -t
⑵now! 趁现在,备份走起:
[root@sylar ~]# xfsrestore -f /opt/xfsdump_sdb1 /media
又一次看见SUCCESS乐呵呵
③那么现在我们来校验一下恢复文件的完整性
[root@sylar ~]# ll -h /media/passwd /media/shadow /etc/passwd /etc/shadow
[root@sylar ~]# ll -h /boot /media/boot
当然,大伙也可以使用diff命令来做比较
好啦,完全恢复完成,so easy!
Ⅳ、部分备份和部分恢复
xfsdump和xfsrestore都有-s选项,该选项就是用于部分备份和部分恢复的。
⑴使用xfsdump部分备份举例:
[root@sylar media]# xfsdump -f /opt/xfsdump2_sdb1 /media -s ./passwd ./shadow -L xfsdump2_sdb1 -M media1
老方法:看到最后一行的SUCCESS就知道完美啦
上例指定将/media目录下的passwd和shadow文件进行备份
(注意:备份时使用-s参数必须要进入要备份的目录下,即必须使用相对路径,不然会失败的我跟你缩)
⑵使用xfsrestore部分恢复举例(从Ⅱ步骤备份文件xfsdump_sdb1中恢复):
[root@sylar media]# xfsrestore -f /opt/xfsdump_sdb1 -s passwd /tmp/test
又一次SUCCESS了呢,你今天真漂亮!
不信?来验一下真假咯:
[root@sylar ~]# diff /tmp/test/passwd /etc/passwd
没有输出表示俩文件一毛一样,信否?
Ⅴ、增量备份及其恢复
最后一个模块啦,看到这一定是真爱!
这个块也很重要的喔~
情景:我们磁盘中的文件一般都只是部分的变更,每次完全备份会浪费大量空间,也很耗时;然而使用部分备份又母鸡哪些文件改变了。那么这时,增量备份就派上用场啦。叔来给你们说说啊~
小白问:啥是增量备份捏?(上科普↓o↓)
增量备份:表示在原来备份的基础上只备份新的内容;使用-l选项,其后接数字1-9,表示备份等级;xfsdump不使用-l参数时默认为0级,即完全备份。
新例子登场:
⑴我们先来在挂载点目录/media目录下增加一些内容:
[root@sylar ~]# touch /media/{a.txt,b.txt}1
⑵下面来个一级备(在原来备份好xfsdump_sdb1的情况下):
[root@sylar ~]# xfsdump -l 1 -f /opt/xfsdumpadd1_sdb1 /media –L xfsback1_sdb1 –M media01
⑶在/media目录下再动点手脚,嘿嘿
[root@sylar ~]# touch /media/{c.txt,d.txt}1
⑷接着下面(不要污~)来个二级备:
[root@sylar ~]# xfsdump -l 2 -f /opt/xfsdumpadd2_sdb1 /media –L xfsback2_sdb1 –M media01
⑸下面不备了,恢复!
恢复时只需要先恢复全量备份再恢复增量备份即可完全恢复数据:
(如果进行了多个增量备份,则第二步只需恢复最后一个增量备就能完全恢复
[root@sylar ~]# xfsrestore –f /opt/xfsdump_sdb1 /media
[root@sylar ~]# xfsrestore –f /opt/xfsdumpadd2_sdb1 /media12
置于本节命令执行后会出现什么活久见的神奇天象,大家自己试试看呗~
Ⅵ、一些注意事项
xfsdump 不支持没有挂载的文件系统备份,只能备份已挂载过的;
xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系);
xfsdump 只能备份 XFS 文件系统;
xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析;
xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统。
本文标题:xfs文件系统的备份与恢复
本文链接:http://malonghua.com/post/112.html
作者授权:除特别说明外,本文由 SylarM 原创编译并授权 猪逻辑公园工作室 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。