通过xfsdump和xfsrestore命令实现RHEL7 xfs文件系统误删除文件的恢复

news/2024/5/9 21:59:46/文章来源:https://blog.csdn.net/z19861216/article/details/130916622

在linux系统中,我们有时会“不小心”误删除一些文件,如果是自己是测试环境服务器可能“无所谓”。但是一旦发生在客户的生产环境,那就是“重大安全事故”。

我们能不能提前对一些重要的文件系统进行备份,以便当我们真的误删除一些重要的文件时,能够及时恢复呢?本次为大家讲解如何使用xfsdump和xfsrestore命令实现RHEL7 xfs文件系统误删除文件的恢复。

1.实验环境

1.VMWare RHEL7.7

命令:

cat /etc/redhat-release

2.实施步骤

1.虚拟机关机

2.新增一块硬盘大小20G

 

3.虚拟机开机并查看新增磁盘信息

命令:

lsblk |grep "sdb"

4.对新增磁盘进行分区,大小5GB

命令:

echo -e "o\nn\np\n1\n\n+5G\nw" | fdisk /dev/sdb

lsblk |grep "sdb"

5.格式化磁盘分区并挂载

命令:

mkfs.xfs -f /dev/sdb1

mkdir -p /tmp/sdb1

mount /dev/sdb1 /tmp/sdb1

6.创建空文件,空目录,普通文件,普通目录

命令:

cd /tmp/sdb1

mkdir a

mkdir b

touch aa

touch bb

touch kong.txt

echo "aaa" >>aa

echo "bbb" >>bb

mv bb b/

7.使用xfsdump命令备份/dev/sdb1分区中的数据至/root/back目录

前提:如果xfsdump未安装,请安装;yum源可用

yum -install -y xfsdump

命令:

mkdir -p /root/back

xfsdump -f /root/back/dump_sdb1 /dev/sdb1

备注:dump_sdb1为自动定义备份文件名称

[root@rhel77 back]# xfsdump -f /root/back/dump_sdb1 /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
​============================= dump label dialog ==============================
​
please enter label for this dump session (timeout in 300 sec)-> dump_sdb1            #label标签名,可以为空
session label entered: "dump_sdb1"
​--------------------------------- end dialog ---------------------------------
​
xfsdump: level 0 dump of rhel77:/tmp/sdb1
xfsdump: dump date: Sun May 28 19:23:11 2023
xfsdump: session id: b0498d15-755e-4e33-8207-d47830a84bde
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 30592 bytes
​============================= media label dialog =============================
​
please enter label for media in drive 0 (timeout in 300 sec)-> sdb1
media label entered: "sdb1"    #media标签名,可以为空
​--------------------------------- end dialog ---------------------------------
​
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 23656 bytes
xfsdump: dump size (non-dir files) : 1088 bytes
xfsdump: dump complete: 12 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /root/back/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
[root@rhel77 back]# ls         #查看备份后的信息
dump_sdb1
[root@rhel77 back]# 
​

8.模拟删除/tmp/sdb1(/dev/sdb1)下的文件

命令:

cd /tmp/sdb1

rm -rf *

ls

9.执行恢复

命令:

cd /tmp/sdb1

xfsrestore -f /root/back/dump_sdb1 /tmp/sdb1/

ls

tree

备注:dump_sdb1为xfsdump命令备份的文件名称

[root@rhel77 sdb1]# cd /tmp/sdb1
[root@rhel77 sdb1]# xfsrestore -f /root/back/dump_sdb1 /tmp/sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: rhel77
xfsrestore: mount point: /tmp/sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Sun May 28 19:23:11 2023
xfsrestore: level: 0
xfsrestore: session label: "dump_sdb1"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: f41c9297-c680-4555-887b-673d47c5693e
xfsrestore: session id: b0498d15-755e-4e33-8207-d47830a84bde
xfsrestore: media id: 0d886f27-6182-408d-89a1-ee0cf1265645
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 3 directories and 5 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /root/back/dump_sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS
[root@rhel77 sdb1]# ls
a  aa  b  kong.txt
[root@rhel77 sdb1]# tree
.
├── a
├── aa
├── b
│   └── bb
└── kong.txt
​
2 directories, 3 files
[root@rhel77 sdb1]# 
​

至此,被删除的文件和目录恢复成功!

备注:

1.xfsdump备份和xfsrestore恢复磁盘的前提是磁盘分区始终要处于挂载状态

2.xfsdump -f /root/back/dump_sdb1 /dev/sdb1。

xfsdump -f $destination $source

xfsdump命令备份时,$source只可以使用/dev/sdb1磁盘分区,不可以使用 /tmp/sdb1(/dev/sdb1磁盘分区的挂载点)

3.xfsrestore能够恢复为空的文件和目录

4.xfsrestore -f /root/back/dump_sdb1 /tmp/sdb1

xfsrestore -f $source $destination

xfsrestore命令恢复时,$destination既可以是/tmp/sdb1(/dev/sdb1磁盘分区的挂载点),也可以是其它目录,但不能直接使用/dev/sdb1磁盘分区名称

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_690790.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python程序员必知的Geany配置技巧

Python程序员必知的Geany配置技巧 如果你是一名Python程序员,并且正在寻找一个简单易用的代码编辑器,那么Geany是一个非常不错的选择。Geany是一款轻量级的集成开发环境(IDE),除了Python,还支持许多其他编…

PRL:上海交大张文涛团队实现量子材料相关突破

来源:上海交通大学 近期,上海交通大学物理与天文学院张文涛研究组利用自行研制的高能量和高时间分辨率角分辨光电子能谱系统对量子材料1T-TiSe₂电子结构进行了超快激光操控研究。利用超快光激发与电荷密度波相有关的相干声子,引起晶格内原子…

【教程】两种免费更新iOS17测试版的方法

苹果iOS17系统已经发布,目前所有用户都可以免费注册成为开发者,升级iOS17开发者测试版 注意,现在不是通过描述文件来更新系统了,给大家带来两种更新升级方法,看下文操作 方法一 苹果官网注册 按照下图发消息“更新” …

Leetcode刷题笔记--Hot01-10

1--两数之和 讲解参考:LeetCode 最热门 100 题 主要思路: 对数组进行从小到大的排序,使用两个指针指向第一个元素和最后一个元素,即左指针指向第一个元素A[l],右指针指向最后一个元素A[R]; 判断两个指针当前…

chatgpt赋能python:Python安装gym:入门指南

Python安装gym: 入门指南 如果您是一位正在学习强化学习的学生,或者是一位研究者、开发人员,那么您一定会对OpenAI出品的gym库感兴趣。该库为编写和比较强化学习算法提供了一组标准环境。但是,在使用gym之前,您需要将其安装到您的…

聊聊那些奇葩的代码规范 —— 所有 IntelliJ 的警告必须要处理

因为有些要求感觉实是太过奇葩,收集下来娱乐下大家。 代码规范要求 如果代码在 IntelliJ 出现了警告提示,所有的警告必须要在提交之前处理完成,否则 PR 合并全部被拒绝,不管有些警告是不是有点奇葩, 同时&#xff0…

智能路由器开发之创建一个procd init脚本示例

智能路由器开发之创建一个procd init脚本示例 Procd init脚本默认提供了许多好用的功能,例如重启策略和能够从UCI系统中存储和读取配置。 设置 举个例子,假设我们想创建一个作为服务的Shell脚本,并且这个服务可以通过消息和超时时间进行配…

chatgpt赋能python:Python定义未知变量的方法及注意事项

Python定义未知变量的方法及注意事项 在Python编程中,我们经常需要定义变量来存储数据,但有时候我们需要先创建一个变量,但不想立即给它赋值,或者我们想定义一个未知变量。本文将介绍Python中定义未知变量的方法及注意事项。 什…

chatgpt赋能python:Python安装和打开教程

Python安装和打开教程 Python作为一种高效、灵活、易学易用的编程语言,越来越受到广大程序员的青睐,越来越多的人想要学习Python。在学习Python之前,首先要进行Python的安装和打开。那么,本篇文章将为您介绍如何安装和打开Python…

READ-自动驾驶大场景神经渲染

这是一个针对自动驾驶场景的神经渲染方案,提出了一种大规模神经渲染方法来合成自动驾驶场景(READ),这使得通过各种采样方案在PC上合成大规模驾驶场景成为可能。 疑问:文中提到基于nerf的方法和神经渲染方法&#xff0…

BOOST 恒压控制驱动芯片,外围电路简单

应用说明 Hi8000 是一款外围电路简单的 BOOST 升压恒压控制驱动芯片,适用于 2.7-40V 输入电压范围的升压恒压电源应用领域,启动电压可以低至 2.5V,可以广泛应用 于太阳能、便携式数码产品,锂电升压应用等供电领域。 应用领域 移…

第六十七天学习记录:对陈正冲编著《C 语言深度解剖》中关于变量命名规则的学习

最近开始在阅读陈正冲编著的《C 语言深度解剖》,还没读到十分之一就感觉收获颇多。其中印象比较深刻的是其中的变量的命名规则。 里面提到的不允许使用拼音正是我有时候会犯的错。 因为在以往的工作中,偶尔会遇到时间紧迫的情况。 而对于新增加的变量不知…

无条件抽奖和条件抽奖(互动功能发起端JS-SDK)

无条件抽奖功能概述 允许开始前对抽奖进行奖品、中奖人数、中奖人员等设置,完成设置后可以开始抽奖。 本功能只支持讲师、嘉宾、助教、管理员这四种角色进行抽奖的发起和停止。支持自定义设置中奖用户信息采集字段。支持设置预设中奖用户。支持设置定时开奖可查看…

java设计模式(十六)命令模式

目录 定义模式结构角色职责代码实现适用场景优缺点 定义 命令模式(Command Pattern) 又叫动作模式或事务模式。指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化&a…

【SpinalHDL快速入门】4.6、复合类型之Vec

文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较(Comparison)1.3.2、类型转换(Type cast)1.3.3、杂项(Misc)1.3.4、Lib辅助函数(Lib helper functions) 1.1、描述 …

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…

Day_42哈希表

目录 一. 关于哈希表 二. 如何实现哈希表 1. 散列函数 2. 散列表 3. 散列函数的构造方法 4. 处理冲突的方法 三. 代码实现 1. 构造函数构造哈希表 2. 哈希表的查找 四. 代码展示 五. 数据测试​编辑 六. 总结 一. 关于哈希表 在前面介绍的线性表的查找中,记录在表中的位置…

kali 2023.2安装、换源、更新、SSH

kali2023版本已经更新了&#xff0c;为了体验新版&#xff0c;下载试用了一下。记录初始的安装过程&#xff0c;以备复习用&#xff0c;不足之处欢迎批评指正。 一、下载 1、官网下载&#xff0c;地址&#xff1a;https://www.kali.org/&#xff0c;因为我准备在VM虚拟机中使用…

二叉搜索树(Binary Seach Tree)模拟实现

目录 二叉搜索树的性质 二叉搜索树的实现 结点类 接口类(BSTree) 二叉搜索树的插入(insert) 二叉搜索树的查找(find) 二叉搜索树删除(erase) 第二种、删除的结点右子树为空 第三种、删除的结点左子树为空 第四种、删除的结点左右都不为空 实现 二叉搜索树模拟实现代…

【算法】手写题

文章目录 画一个三角形实现三栏布局通过position和margin通过float和margin通过flex实现 变量提升题实现边框0.5px深拷贝快速排序 画一个三角形 .box1 {width: 0;height: 0;border: 10px solid;border-color: red transparent transparent transparent;}实现三栏布局 三栏布局…