恢复XFS类型的文件

首先我们要清楚删除一个文件,实际上并不清除 inode 节点和 block 的数据,只是在这个文件的父目录 里面的 block 中,删除这个文件的名字。Linux 是通过 Link 的数量来控制文件删除的,只有当一个文件不存在任何 Link 的时候,这个文件才会被删除。所以当文件被我们意外删除时,只要文件有做好备份,我们就还可以将文件恢复

一、使用到的命令

xfsdump 命令格式

xfsdump -f 备份存放位置 要备份的路径或设备文件

xfsdump备份级别(默认为0

  • 0:完全备份

  • 1-9:增量备份

xfsdump常用选项-f ,-L ,-M ,-s

xfsrestore命令格式:

xfsrsetore -f 恢复文件的位置 存放恢复后的文件位置

二、安装xfsdump,xfsrestore软件工具,并进行备份

1、确认xfsdump,xfsrestore软件是否安装,没有安装使用yum install 进行安装,centos7中是默认安装的

[root@localhost ~]# rpm -q xfsdump   查看xfsdump是否安装

[root@localhost ~]# rpm -q xfsrestore   查看xfsrestore是否安装

image.png

2、模拟创建新的磁盘,分区格式化并挂载

[root@localhost ~]# fdisk /dev/sdb   创建分区

[root@localhost ~]# mkfs.xfs /dev/sdb1      格式化磁盘    

[root@localhost ~]# mkdir data     

[root@localhost ~]# mount /dev/sdb1 /data 

image.png

image.png

Linux中的xfs类型文件备份恢复_第1张图片

image.png


3在/data目录下创建文件目录,使用xfsdump对其进行备份,备份到/opt/xfs_dump中

[root@localhost data]# cp /etc/passwd ./          复制/etc/passwd下的文件到data中

[root@localhost data]# mkdir test        创建新的目录

[root@localhost data]# touch test/a01.txt      创建新的文件

[root@localhost data]# xfsdump -f /opt/xfs_dump /dev/sdb1   用xfsdump命令对/dev/sdb1磁盘备份文件到/opt/xfs_dump下    

Linux中的xfs类型文件备份恢复_第2张图片

Linux中的xfs类型文件备份恢复_第3张图片

4、模拟删除并执行恢复操作

1)、删除/data下的所有文件

2)、使用xfsrestore恢复文件

3)、查看备份文件即可完成恢复

[root@localhost ~]# rm -rf /data/*             删除/data下的所有文件

[root@localhost ~]# xfsrestore -f /opt/xfs_dump /data/                使用xfsrestore恢复文件 

image.png

image.png

inode节点被占用的情况下也可恢复成功。