Linux 回收站
聊一聊执行 rm -rf 数据恢复以及建立 Linux 回收站
误删除 rm -rf
如果在Linux 平台下,执行 rm -rf 误删除文件,我们可以做哪些数据恢复的工作以及我们该如何应对不小心删除数据。
windows 恢复误删除文件相对比较简单,各种版本的磁盘工具都能轻松恢复。
本章节主要讲的是 centos7 下误删除文件的恢复。 由于 ext4 于 xfs 恢复方法不一样,所以准备 ext4 和 xfs 两种格式的分区:

为了最后确认数据, 这里从其他目录复制一份文件到测试目录:
[root@localhost data]# cp /etc/hostname /data/data-ext4/
[root@localhost data]# cp /etc/hostname /data/data-xfs/
[root@localhost data]# tree
.
├── data-ext4
│ ├── hostname
│ └── lost+found
└── data-xfs
└── hostname 3 directories, 2 files
ext4 误删除恢复
Ext 分区文件可以使用恢复工具 extundelete 来恢复。
- 通过手动删除的方法对ext4分区的文件进行删除:
[root@localhost ~]# cd /data/data-ext4/
[root@localhost data-ext4]# rm -rf hostname
[root@localhost data-ext4]# ls
lost+found
开始安装恢复工具extundelete
# 安装恢复工具 [root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install extundelete -y # 卸载分区/dev/vdb1; [root@localhost ~]# umount /dev/vdb1
# 执行恢复命令; [root@localhost ~]# extundelete /dev/vdb1 --inode 2
下面可以看到已经删除的文件了

恢复文件:extundelete /dev/vdb1 --restore-all
注意:最好是用--restore-all参数,恢复单个文件或者恢复目录可能会报错。
在当前目录下会创建一个RECOVERED_FILES目录,通过md5比对确认是同一个文件。

xfs 文件恢复
xfs 是用 xfsdump 于 xfsrestore 工具进行备份恢复。
安装 xfsdump
#安装xfsdump yum install -y xfsdump
#利用xfsdump备份磁盘。 xfsdump -f /data/xfsbackup /dev/vdc1

模拟删除文件:
[root@localhost data]# cd data-xfs/
[root@localhost data-xfs]# ls
hostname
[root@localhost data-xfs]# rm -rf hostname
[root@localhost data-xfs]# ls
[root@localhost data-xfs]#
恢复文件:
[root@localhost data]# xfsrestore -f xfsbackup backup/
其中xfsbackup是上面执行xfsdump生成的备份文件,bakup/意思为文件恢复到指定目录

进入backup目录,通过MD5对文件进行校验,文件是刚刚删除的文件。

如何应对 rm -rf (建立回收站)
工作中,由于 rm -rf 带来损失的新闻比比皆是,那我们应该做些什么来应对误删除呢?
方法有许许多多,这里介绍一个比较好一点的方法,建立rm 回收站。
vim ~/.bashrc
#注释掉rm=rm -i
#如何添加下面的内容

回收站演示:
使用rm -rf提示mv没有-r参数不能使用,利用rm 删除文件以后,利用rl就可以查看回收站内容,如果要彻底删除,就用cleartrash命令。
[root@localhost data]# rm -rf xfsbackup
mv: invalid option -- 'r'
Try 'mv --help' for more information.
[root@localhost data]# rm xfsbackup
[root@localhost data]# ls
data-ext4 data-xfs
[root@localhost data]# rl
xfsbackup
[root@localhost data]# cleartrash
clear sure?[n]y
总之,平时要养成重要数据备份的好习惯,恢复工具也不能保证百分百恢复,免得等误删除以后才追悔莫及。
希望大家能够多多关注,多年致力于互联网搬砖,各种互联网技术都稍有涉猎。
Linux 回收站的更多相关文章
- linux回收站设计
linux回收站设计 在windows下有一个很好的东西,那就是回收站,虽然有很多人批评它.linux不是没有回收站,很多桌面环境都可以看到是有回收站的. 这里是讨论如何设计一个回收站,而不是有没有的 ...
- 打造Linux回收站
linux是没有回收站概念的,一旦误删除文件了是很难很难找回来的,对普通用户而言误删除文件就等于永久性不可逆丢失数据了:不过可以改造一下rm命令来变相实现回收站功能,实际上就是mv命令转移文件到指定路 ...
- shell实现linux回收站的功能
shell实现linux回收站的功能 下载: https://gitee.com/LoongWang/shellrecycling/repository/archive/master.zip 代码: ...
- Linux回收站的路径在哪里?
linux 回收站的路径:-/.local/share/Trash
- Linux回收站(改写rm防止误删文件无法恢复)
rm -rf 慎用 命令敲得多了,常在河边走,难免会湿鞋 昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了 几天心血全木有了,靠,死的心都有了 经百度,google以及尝试无果,哎, ...
- 系统优化——建立linux回收站机制
前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么 ...
- linux 回收站的添加
在~下 .bashrc或者.bash_profile加入 mkdir -p ~/.trash alias rm=trash trash() { mv $@ ...
- Linux回收站[改写rm防止误删文件无法恢复]
http://blog.csdn.net/wklken/article/details/6898590
- 《Linux命令、编辑器与shell编程》第三版 学习笔记---002
<Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo $0 echo $BAS ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
随机推荐
- 选择排序与冒泡排序(c语言+Java语言)
选择排序 O(n2) 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 重复第二步,直到所有元素均排序完毕. 例 ...
- 五分钟了解MES与MOM的区别和联系
大家好,我是Edison. 上一篇,我们通过了解了MES系统的发展历程和标准体系.本篇,我们来快速了解一下近年来吵得很热的MOM是什么鬼,它和MES到底有什么区别和联系. MES是什么 MES (Ma ...
- pod reopened update慢
CocoaPods 镜像使用帮助 CocoaPods 是一个 Cocoa 和 Cocoa Touch 框架的依赖管理器,具体原理和 Homebrew 有点类似,都是从 GitHub 下载索引,然后根据 ...
- 现代C++(Modern C++)基本用法实践:四、模板
概述 C++的模板是泛型编程思想的一种实现.C++是强类型语言,处处强调类型.同样的加法运算,int和float的加法运算需定义两个函数(重载),而使用模板则可以只用一个函数(见下面示例). 这类似我 ...
- Mediabox:年度最佳音视频开发工具
"2023稀土开发者大会"落下帷幕,由稀土掘金社区评选的的掘金技术引力榜重磅出炉,共有22个优秀实践案例上榜,涵盖对技术行业发展有特别贡献的人物.开发工具.开源项目.技术团队和技术 ...
- TCP 初识(一)
什么是TCP? TCP是面向连接的,可靠的,基于字节流的传输层通信协议. 面向连接:一定是一对一才能连接,不能像UDP协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的. 可靠的:无论网 ...
- pandas: dataframe转字典,并设置key
解决方案 res = df_by_monthly.set_index('recruit_resign_month').T.to_dict('list') print(res) 上述代码是转为列表形式 ...
- Axios向后段请求数据GET POST两种方法的不同之处
GET请求 向后端请求时,通过URL向后端传递参数 axios({ url:'http://127.0.0.1:9000/get-user-list/', type:'json', //GET方法携带 ...
- 暑假刷题记 B
动态规划 字符串 杂题 A:Animals and Puzzle B:Vanya and Treasure 根号分治. 实际上是从 \((1, 1)\) 先找一个 \(1\),再找一个 \(2\dot ...
- 【python笔记】高阶函数map、filter、reduce
前言 map().reduce().filter()是python的三个高阶函数.所谓高阶函数,指的是将函数作为参数并返回函数作为结果的函数.下面代码的sing_ready只是一个简单高阶函数示例: ...