Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs

引入:

通常tar针对目录的打包与备份,如果想要对整个文件系统进行备份与还原,就需要用到其它工具

本片文章介绍xfs文件系统的备份与还原

  • xfsdump:xfs文件系统的备份
  • xfsrestore:xfs文件系统的还原
  • 所有命令以root权限进行

 

一、XFS文件系统的备份(xfsdump)

1.格式

  • xfsdump  [-L S_label]  [-M M_label]  [-l #]  [-f  备份文件]  待备份的数据 
  • xfsdump  -I (i的大写)

选项与参数

  • -L:xfsdump会记录每次备份的session标头,这里可以填写针对此次文件系统备份的简易说明
  • -M:xfsdump可以记录存储媒介的标头,这里可以填写此次文件系统备份的媒介的简易说明
  • -l(L的小写):后面的#代表数字,代表备份等级,这个数字也代表session label。共有0-9十个的等级(默认为0,即完整备份)。与完整备份和增量备份时有关
  • -f:后面接备份后产生的文件名。可以为一般文件文件名,也可以接/dev/st0磁带等特殊文件名
  • -I(i的大写):列出/var/lib/xfsdump/inventory目录下目前备份的信息状态

2.xfs文件系统备份的限制与注意事项

  • xfsdump只能备份xfs文件系统
  • xfsdump必须使用root的权限才可以操作
  • xfsdump备份备份下来的数据(文件/存储媒介)只能让xfsrestore解析。备份的文件名后缀为.dump
  • xfsdump不支持没有挂载的文件系统备份,所以只能备份已挂载的文件系统
  • xfsdump是通过文件系统的UUID来辨别各备份文件,因此不能备份两个具有相同UUID的文件系统
  • xfsdump默认仅支持文件系统的备份,并不支持特定目录的备份
  • 承上,例如:/dev/vda2磁盘时xfs文件系统的,挂载与/boot目录,因此能够对使用xfsdump对/boot进行备份。但是/etc仅是一个目录,不是一个独立的文件系统,因此不能够使用xfsdump对/etc进行备份

3.两个术语:完整备份与增量备份

  • 完整备份:文件系统的第一次备份称为完整备份
  • 增量备份:第二次及以后备份称为增量备份
  • /var/lib/xfsdump/inventory目录:每次备份都会产生记录文件(记录备份信息),这些文件存放在这个目录下

如何理解?:

  • 第一次对文件系统备份的时候,会把文件系统的所有数据都进行备份,所以叫做完整备份。而第二次及以后备份的时候,只会备份相对于前一次更改过的文件或者新文件,而不会备份与从前备份过的相同的文件,所以叫做增量备份

4.备份的注意事项

  • 文件系统的第一次备份一定是完整备份,后面进行的备份都是增量备份
  • 承上,因此-l后面跟的数字也与备份顺序有关。第一次完整备份时填0,后面进行的备份数字逐级递增(2,3,4...)。这个数字也代表这session标头数字

5.完整备份案例

备份哪个?我们的系统中,/dev/sda1分区是挂载到/boot目录下的,且sda1采用的是xfs的文件系统,因此,我们可以对/boot这个目录进行备份,并将备份文件boot.dump存放在/srv目录下

  • 开始备份:输入如下的命令

0代表第一次完整备份。-L与-M后面跟的都是建简易说明,自己书写

xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第1张图片

  • 备份完成之后,查看一下/var/lib/xfsdump/inventory目录下的备份记录信息文件
ll /var/lib/xfsdump/inventory/

  • 备份完成之后,查看一下/var/lib/xfsdump/inventory目录下目前备份的信息状态

图中显示的是session 0代表第一次完整备份

xfsdump -I

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第2张图片

5.增量备份案例

如何备份?我们针对上面的完整备份,在/boot目录下面建立一个大文件testing.img,然后进行增量备份,备份文件名为boot.dump1,存放在/srv目录下

  • 第一步:建立新文件

在/boot目录下建立一个大文件testing.img,文件大小为10MB

dd if=/dev/zero of=/boot/testing.img bs=1M count=10

  • 第二步:开始进行增量备份

因为是第二次备份,所以-l选项后面填1

xfsdump -l 1 -L boot_1 -M boot_1 -f /srv/boot.dump1 /boot

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第3张图片

  • 备份完成之后,查看一下两个备份文件的大小

因为新建立的文件只有10M,所以第二次备份的文件为11M(与10M很相近),这就体现出了增量备份的特点

  • 备份完成之后,查看一下/var/lib/xfsdump/inventory目录下目前备份的信息状态
xfsdump -I

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第4张图片

 

二、XFS文件系统的还原(xfsrestore)

1.格式

  • xfsrestore -I (i的大写)
  • xfsrestore  [-f  备份文件名]  [-L S_label]  [-s 指定目录/文件]   恢复目录(恢复到哪里)
  • xfsrestore  [-f  备份文件名]  - r   恢复目录
  • xfsrestore  [-f  备份文件名]  -i    恢复目录

选项与参数

  • -I(i的大写):与xfsdump -I相同,都是查询备份数据的信息
  • -f:后面接备份文件,也有可能是/dev/st0磁带机等特殊文件
  • -L:每次备份时会标注的session label名称(-l参数可查询),可以通过这一名称来进行还原,更加清楚想要还原哪个文件。不过-L这一项也可以不填
  • -s:后面接目录/文件,代表还原时只还原恢复制定的目录/文件,而不是全部还原
  • -r:如果用文件来存储备份数据,则不需要这个选项。如果是使用磁带等来存储备份文件,则需要用此项来完成积累恢复还原
  • -l(小写):进入交互模式,高级管理员使用,一般使用不到

2.还原的注意事项

  • 文件系统还原之后,只有同名文件会被覆盖,而原本备份之后由系统产生的新文件则保留,还存在里面

3.恢复完整备份案例

下面我们将boot.dump备份文件,一个恢复到原来的/boot目录下,一个恢复到/tmp/boot目录下,查看一下差异

  • 还原恢复到/boot目录下
xfsrestore -f /srv/boot.dump -L boot_all /boot

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第5张图片

  • 还原恢复到/tmp/boot目录下
xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第6张图片

最后两个都还原恢复完成了,查看一下/boot与/tmp/boot两个目录的差别

  • 使用du与diff两个命令查看一下

因为我们第一次完整备份完/boot之后,在/boot目录下增加了一个testing.img文件。所以当还原恢复之后,两个目录只有一个文件的差别

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第7张图片

4.恢复增量备份

其实,增量备份的还原与完整备份还原相同

  • 例如:我们将增量备份文件/boot.dump2还原到/tmp/boot目录下
xfsrestore -f /srv/boot.dump1 /tmp/boot

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第8张图片

5.只还原某一目录案例(-s选项的使用)

如果我们在还原时指向还原备份文件中的某一个文件/目录,则可以使用-s这个选项

  • 例如:下面我们只想还原boot.dump备份文件中的grub2目录,将其还原到/tmp/boot2目录下,其他的不还原
xfsrestore -f /srv/boot.dump -L boot_all -s grub2 /tmp/boot2

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第9张图片

6.交互模式进行还原(-i选项的使用)

上面介绍过-s只还原某指定的目录/文件,但是如果我们不知道备份文件中有哪些文件名,那如何指定恢复部分目录/文件哪?此时就需要-i选项进入备份文件目录内,使用交互模式选择文件来进行还原

  • 例如:我们将/boot.dump备份文件中的某些文件还原到/tmp/boot3目录中
xfsrestore -f /srv/boot.dump -i /tmp/boot3

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第10张图片

进入之后,可以看到有几个命令可以执行操作:add添加进还原列表中,delete从还原列表中删除,最后使用extract开始还原操作

  • 下面我们用ls列出备份文件中有哪些内容

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第11张图片

  • 然后我们使用add命令,将grub和grub2两个文件添加进还原列表中,最后使用extract进行还原

Linux(入门基础):37---XFS文件系统的备份与还原(xfsdump、xfsrestore)。附:xfs_growfs_第12张图片

 

三、xfs_growfs:文件系统扩大

1.功能

  • 可以将已有的文件系统扩大(存储空间/容量)

2.格式

  • xfs_growfs   挂载目录

3.案例

例如:/dev/sda1分区为xfs文件系统,挂载于/mnt目录下

  • 将/dev/sda1扩大,扩大之后用df命令可以看到/dev/sda1的分区容量变大
xfs_growfs  /mnt

 

你可能感兴趣的:(Linux(入门基础))