聊一聊执行 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 回收站的更多相关文章

  1. linux回收站设计

    linux回收站设计 在windows下有一个很好的东西,那就是回收站,虽然有很多人批评它.linux不是没有回收站,很多桌面环境都可以看到是有回收站的. 这里是讨论如何设计一个回收站,而不是有没有的 ...

  2. 打造Linux回收站

    linux是没有回收站概念的,一旦误删除文件了是很难很难找回来的,对普通用户而言误删除文件就等于永久性不可逆丢失数据了:不过可以改造一下rm命令来变相实现回收站功能,实际上就是mv命令转移文件到指定路 ...

  3. shell实现linux回收站的功能

    shell实现linux回收站的功能 下载: https://gitee.com/LoongWang/shellrecycling/repository/archive/master.zip 代码: ...

  4. Linux回收站的路径在哪里?

    linux 回收站的路径:-/.local/share/Trash

  5. Linux回收站(改写rm防止误删文件无法恢复)

    rm -rf 慎用 命令敲得多了,常在河边走,难免会湿鞋 昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了 几天心血全木有了,靠,死的心都有了 经百度,google以及尝试无果,哎, ...

  6. 系统优化——建立linux回收站机制

    前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么 ...

  7. linux 回收站的添加

    在~下     .bashrc或者.bash_profile加入 mkdir -p ~/.trash     alias rm=trash       trash()     {      mv $@ ...

  8. Linux回收站[改写rm防止误删文件无法恢复]

    http://blog.csdn.net/wklken/article/details/6898590

  9. 《Linux命令、编辑器与shell编程》第三版 学习笔记---002

    <Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BAS ...

  10. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

随机推荐

  1. 《Effective C++ 改善程序与设计的55个具体做法》读书笔记

    1 .让自己习惯C++ 条款01 视C++为一个语言联邦 C Object-Oriented C++ Template C++ STL C++高效编程守则视情况而变化,取决于你使用C++的哪一部分. ...

  2. CF371D Vessels题解

    思路: 定义一个权值并查集,权值保存这个集合还可以存下多少水. 如果这个集合可以存放的水已经小于要装入的水,就将这个集合与下一个集合合并. 否则,直接把这个集合可以存放的水减去要装入的水的体积. 代码 ...

  3. Day07_Java_作业

    A:简答题 1. 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项? 构造方法中可不可以写return语句呢? 2. 一个类的缺省构造方法可以有参数吗? 3. 静态代码块和构造代码块的特 ...

  4. Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics

    在Delta Lake官网上提到的一篇新一代湖仓架构的论文. 这篇论文由Databricks团队2021年发表于CIDR会议. 这个会议是对sigmod和vldb会议的补充. 可以看到这篇论文和前一篇 ...

  5. Redis的设计与实现-总结

    个人真的很喜欢这本书, 从对C语言一窍不通, 到发现C语言竟然如此简洁, 以至于我喜欢上了C! 对此前面的底层数据结构也读了几次, 大致整理了书里的内容, 后面的就粗略看了一下, 不再细细整理了. R ...

  6. sshpass快速登录远程主机:s2

    #!/bin/bash passwd= if [ $# -ne 1 ] then echo "$0 [31|37|61]" fi if command -v sshpass the ...

  7. 删除 /tmp 目录下长时间未访问的文件

    #!/bib/bash DIR=/tmp cd $DIR || { echo "Dir not Found: $Dir" exit } echo "Delete a fi ...

  8. Unity 编辑器选择器工具类Selection 常用函数和用法

    Unity 编辑器选择器工具类Selection 常用函数和用法 点击封面跳转下载页面 简介 在Unity中,Selection类是一个非常有用的工具类,它提供了许多函数和属性,用于操作和管理编辑器中 ...

  9. JDV背后的技术-助力618

    一.项目介绍 JDV(可视化大屏)是京东内部搭建可视化大屏的数据工具平台,内置10+种模版特效,40+种风格各异的图表.导航等组件.与集团其他数据工具打通,支持一站式.自助化.拖拽式搭建大屏,实现数据 ...

  10. 【技术积累】Linux中的命令行【理论篇】【九】

    blkid命令 命令介绍 blkid命令是一个用于查看块设备属性的Linux命令.它可以识别和显示块设备的文件系统类型.UUID.LABEL.PARTUUID等信息. 命令说明 在Linux下可以使用 ...