xfs文件系统的备份与恢复

在rhel7中,默认的文件系统类型为xfs。
装好系统后默认有xfs文件系统的备份工具xfsdump和恢复工具xfsrestore,这也是该技术主要用到的命令

Ⅰ、新建一个分区用于做测试环境

①分区:

[root@super ~]# fdisk /dev/sdb

xfs文件系统的备份与恢复_第1张图片

②格式化
⑴强制分区信息读入内存:
[root@super ~]# partprobe
⑵查看分区信息:
[root@super ~]# cat /proc/partitions
xfs文件系统的备份与恢复_第2张图片
⑶进行格式化:
[root@super ~]# mkfs.xfs /dev/sdb1
xfs文件系统的备份与恢复_第3张图片

③挂载
[root@super ~]# mount /dev/sdb1 /media
查看是否挂载成功:
[root@super ~]# mount | grep "/dev/sdb1"
[root@super ~]# df -Th | tail -1

挂载

④在挂载点目录里面创建一些测试文件
[root@super ~]# cp -a /etc/passwd /etc/shadow /boot .
[root@super ~]# ls /media
boot passwd shadow

到这,我们的测试环境已经创建完成,下面进行文件系统的备份。

Ⅱ、xfs文件系统的完全备份

xfs文件系统备份使用的命令是xfsdump,用法如下:
xfsdump [ options ] -f dest [ -f dest2 … ] filesystem

该命令的选项说明:
-f:其后指定备份文件的存放位置
-L:指定备份会话标签(免交互,不指定时需要在命令执行过程中指定)
-M:指定设备标签(免交互,不指定时需要在命令执行过程中指定)
-s:指定需要备份的文件(见Ⅳ)
-I:查看文件系统所有备份的详细信息

举个栗子呗:
完全备份栗子
[root@super ~]# xfsdump -f /opt/xfsdump_sdb1 /media –L xfsdump_sdb1 -M media0
xfs文件系统的备份与恢复_第4张图片
赶紧到/opt目录下视察一下有没有备份文件生成:
[root@super ~]# ll -h /opt

-I选项来一发,查看备份的详细信息:
[root@super ~]# xfsdump –I
file system 0:
fs id: c2f86da4-ad4b-451c-97cd-467836b3a82c
session 0:
mount point: super.feng:/media
device: super.feng:/dev/sdb1
time: Sun Dec 4 00:34:13 2016
session label: "xfsdump_sdb1"
session id: 7531c8ac-71d9-4619-ad59-0e7bc804bbcc
level: 0
resumed: NO
subtree: NO
streams: 1
stream 0:
pathname: /opt/xfsdump_sdb1
start: ino 131 offset 0
end: ino 3145859 offset 0
interrupted: NO
media files: 1
media file 0:
mfile index: 0
mfile type: data
mfile size: 121197672
mfile start: ino 131 offset 0
mfile end: ino 3145859 offset 0
media label: "media0"
media id: 65efe44b-dbb6-4c13-a6fd-0c9c6003b6ee
xfsdump: Dump Status: SUCCESS

看最后一句:备份状态:成功
液,完全备份完成,so easy!

Ⅲ、xfs文件系统的完全恢复

xfs文件系统的恢复用到的命令是xfsrestore,用法与xfsdump类似:
xfsrestore [ options ] -f source [ -f source2 … ] dest

选项:
-f:其后指定备份文件的存放位置
-s:恢复备份文件中指定的文件(见Ⅳ)
-t:可查看文件的内容及其详细信息

下来举栗子就是干:
①先删除挂载点目录下的所有文件(模拟文件丢失):
[root@super ~]# rm -rf /media/*
文件丢失
②憋慌,咱们有备份,现在就来还原它(↓_↓)
⑴先等一等[尔康脸],在恢复之前先来看看备份文件里面都有啥:
[root@super media]# xfsrestore -f /opt/xfsdump_sdb1 –t

xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
... ...智能省略
passwd
shadow
boot/.vmlinuz-3.10.0-327.el7.x86_64.hmac
… …智能省略
boot/grub2/grub.cfg
boot/grub2/fonts/unicode.pf2
xfsrestore: table of contents display complete: 2 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /opt/xfsdump_sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS

⑵now! 趁现在,备份走起:
[root@super ~]# xfsrestore -f /opt/xfsdump_sdb1 /media
xfs文件系统的备份与恢复_第5张图片
又一次看见SUCCESS乐呵呵

③那么现在我们来校验一下恢复文件的完整性
[root@super ~]# ll -h /media/passwd /media/shadow /etc/passwd /etc/shadow
[root@super ~]# ll -h /boot /media/boot

检验文件完整性
xfs文件系统的备份与恢复_第6张图片
当然,大伙也可以使用diff命令来做比较

好啦,完全恢复完成,so easy!

Ⅳ、部分备份和部分恢复

xfsdump和xfsrestore都有-s选项,该选项就是用于部分备份和部分恢复的。
⑴使用xfsdump部分备份举栗:
[root@super media]# xfsdump -f /opt/xfsdump2_sdb1 /media -s ./passwd ./shadow -L xfsdump2_sdb1 -M media1

xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
... ...智能省略
xfsdump: stream 0 /opt/xfsdump2_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS

老方法:看到最后一行的SUCCESS就知道完美啦

上栗指定将/media目录下的passwd和shadow文件进行备份
注意:备份时使用-s参数必须要进入要备份的目录下,即必须使用相对路径,不然会失败的我跟你缩)

⑵使用xfsrestore部分恢复举栗(从Ⅱ步骤备份文件xfsdump_sdb1中恢复):
[root@super media]# xfsrestore -f /opt/xfsdump_sdb1 -s passwd /tmp/test

xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
... ...智能省略
xfsrestore: stream 0 /opt/xfsdump_sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS

又一次SUCCESS了呢,你今天真漂亮!

不信?来验一下真假咯:
[root@super ~]# diff /tmp/test/passwd /etc/passwd
没有输出表示俩文件一毛一样,信否?

Ⅴ、增量备份及其恢复

最后一个模块啦,看到这一定是真爱!
这个块也hin重要的喔~
情景:我们磁盘中的文件一般都只是部分的变更,每次完全备份会浪费大量空间,也很耗时;然而使用部分备份又母鸡哪些文件改变了。那么这时,增量备份就派上用场啦。叔来给你们说说啊~
小白问:啥是增量备份捏?(上科普↓o↓)
增量备份:表示在原来备份的基础上只备份新的内容;使用-l选项,其后接数字1-9,表示备份等级;xfsdump不使用-l参数时默认为0级,即完全备份。

新鲜栗子登场:
⑴我们先来在挂载点目录/media目录下增加一些内容:

[root@super ~]# touch /media/{a.txt,b.txt}

⑵下面来个一级备(在原来备份好xfsdump_sdb1的情况下):

[root@super ~]# xfsdump -l 1 -f /opt/xfsdumpadd1_sdb1 /media –L xfsback1_sdb1 –M media0

⑶在/media目录下再动点手脚,嘿嘿

[root@super ~]# touch /media/{c.txt,d.txt}

⑷接着下面(不要污~)来个二级备:

[root@super ~]# xfsdump -l 2 -f /opt/xfsdumpadd2_sdb1 /media –L xfsback2_sdb1 –M media0

⑸下面不备了,恢复!
恢复时只需要先恢复全量备份再恢复增量备份即可完全恢复数据:
(如果进行了多个增量备份,则第二步只需恢复最后一个增量备就能完全恢复(看码↓O↓))

[root@super ~]# xfsrestore –f /opt/xfsdump_sdb1 /media
[root@super ~]# xfsrestore –f /opt/xfsdumpadd2_sdb1 /media

置于本节命令执行后会出现什么活久见的神奇天象,大家自己试试看呗~

Ⅵ、一些注意事项

  • xfsdump 不支持没有挂载的文件系统备份,只能备份已挂载过的;
  • xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系);
  • xfsdump 只能备份 XFS 文件系统;
  • xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析;
  • xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统。

你可能感兴趣的:(linux下的小工具)