xfs文件系统的备份与恢复

发布时间:2019年03月18日 阅读:234 次

在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

  xfs文件系统的备份与恢复 Linux 第1张


②格式化 

⑴强制分区信息读入内存: 

[root@sylar ~]# partprobe 

⑵查看分区信息: 

[root@sylar ~]# cat /proc/partitions 

⑶进行格式化: 

[root@sylar ~]# mkfs.xfs /dev/sdb1 

2.png xfs文件系统的备份与恢复 Linux 第2张


③挂载 

[root@sylar ~]# mount /dev/sdb1 /media 

查看是否挂载成功: 

[root@sylar ~]# mount | grep "/dev/sdb1" 

[root@sylar ~]# df -Th | tail -1 

 3.png xfs文件系统的备份与恢复 Linux 第3张


④在挂载点目录里面创建一些测试文件 

[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 

4.png xfs文件系统的备份与恢复 Linux 第4张


看最后一句:备份状态:成功 

液,完全备份完成,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 

 5.png xfs文件系统的备份与恢复 Linux 第5张

又一次看见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文件系统的备份与恢复
本文链接:https://malonghua.com/post/112.html
作者授权:除特别说明外,本文由 SylarM 原创编译并授权 猪逻辑公园工作室 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
Tag:Centos7 xfsdump xfsrestore
相关文章

发表评论: