不小心执行 rm -f,该如何恢复?
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
作者/justmine 编辑/程序员的那些事 www.cnblogs.com/justmine/p/10359186.html 前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有 bug,呵呵。 那么如果真的删除了不该删除的文件,比如数据库、日志或执行文件,咋办呢?欲知后事如何,请仔细看完本篇博客。 模拟场景 1、删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: 2、恢复 (1)、使用 lsof 命令查看当前是否有进程打开 /root/s 在IT行业中,尤其是在服务器管理与数据安全领域,误删除文件是一个常见的问题,特别是当使用`rm -f`命令时,由于其强制删除的特性,往往会导致数据无法轻易恢复。然而,只要了解一定的技巧和原理,有时还是有可能挽回损失的。本文将详细探讨如何在误执行`rm -f`后恢复文件。 ### 模拟场景分析 假设我们误删除了服务器目录`/root/selenium/Spider`下的`MySql.Data.dll`文件。我们需要检查是否还有进程正在使用这个文件,因为只要文件被进程占用,它在内存中就会保持存在,从而有可能进行恢复。 ### 使用`lsof`命令 1. **查找被删除但仍在使用的文件**: 使用`lsof`命令可以列出所有打开的文件,包括已被删除但仍然有进程在使用的文件。在我们的例子中,我们可以运行`lsof | grep MySql.Data.dll`,如果文件仍然被某个进程持有,`lsof`会显示相关信息,包括文件的状态(如"deleted")。 2. **确认进程和文件描述符**: 如果`lsof`显示了文件信息,我们需要注意进程ID(PID)和文件描述符(FD)。例如,如果看到`/proc/13067/fd/86`,这意味着PID为13067的进程使用了文件描述符86来访问文件。 ### 恢复文件 1. **查看进程文件描述符**: 进入`/proc/13067/fd`目录,这将显示进程13067的所有打开文件。通过文件描述符86,我们可以看到`MySql.Data.dll`的软链接。 2. **使用I/O重定向恢复**: 使用`cat /proc/13067/fd/86 > 新的文件路径`命令,将文件内容重定向到新的位置,创建一个新的文件。这样,原本删除的文件内容就被保存到了新的文件中。 ### 原理及条件 在Linux系统中,文件是由进程通过文件描述符来访问的。即使文件在文件系统中被标记为删除,只要进程不关闭相应的文件描述符,文件内容实际上还在内存中。因此,只要在文件被真正释放(即所有使用它的进程都关闭了文件描述符)之前进行恢复,就有可能找回数据。 ### 注意事项 - **时间紧迫**:一旦发现误删,应尽快采取行动,因为其他进程可能会占用相同的磁盘空间,导致数据被覆盖。 - **权限检查**:在执行恢复操作时,确保有足够的权限访问和恢复文件。 - **备份**:最重要的预防措施是定期备份关键数据,以防万一。 ### 总结 误执行`rm -f`后,不要慌张,立即使用`lsof`找出仍在使用被删除文件的进程,然后通过文件描述符来恢复数据。但是,这种方法并不是万无一失的,所以保持良好的备份习惯至关重要。同时,对Linux系统有深入理解,了解其内核是如何管理文件和进程的,也将有助于在类似情况下做出快速而正确的响应。
![](https://csdnimg.cn/release/download_crawler_static/14884210/bg1.jpg)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![text/plain; charset=iso-8859-1](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 6
- 资源: 930
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论11