记一次惊心动魄的数据恢复:rm -rf /usr

2017-10-29

  昨天晚上下班了,一些加班的同事也下去吃晚饭了,我闲着, 便想找点事儿做,鬼使神差的想要换一台VPS,因为原来的那台yum不好用了,某次我更换了python版本导致不可用了,无论如何也修复不了了(顺便劝告读者们,没事儿别想着动yum相关的程序)。这是令人心碎的程序。我在VPS各个文件夹转转,找那些一看就没有用的文件,一个个慢慢删除,最后把重要文件打包。问题又出在了这个yum,我曾在一个临时文件夹tmpdir 内编译yum,生成了etc、usr文件夹,记得当时就吓了我一跳,现在果然掉进这个坑了。我一看这个usr文件夹里面就只有两个文件,就想直接删除。在tmpdir内运行了rm -rf filea fileb filec dir1 dir2 /usr dir3。一会儿之后,突然意识不妙,放下茶杯,果然悲剧了。苍天啊,大地啊,我瞬间想要砸掉地板啊,想抽自己嘴巴子啊。完了完了,这回GG了。
  虽然我写了文件备份的脚本,但没有加到crontab里去,一两个月备份一次,我之前认为也可以了。幸好这次愚蠢的操作之前也备份了一次。但是,我还帮着托管了同学和同事的小站点,不可避免的有数据丢失啊。vulkan.org.cn BBS也托管在上面啊,数据完全没有被纷纷。
  冷静,冷静。我马上告诉自己。先看看系统会不会马上crash,进行了几个命令操作,大多找不到,系统没有crash。还好,还好,没有crash,天不亡我。我首先想尝试是否能够通过scp或者rsync把文件转移出来。结果是令人心碎的。和网络传

### 删除已安装的 CMake 及其相关工具以完成卸载或降级操作 当需要删除已安装的 CMake 版本以及与其关联的工具(如 `cmake`、`ccmake`、`ctest` 和 `cpack`),以便重新安装或降级到其他版本时,可以遵循以下方法。这些步骤适用于基于 Debian 的 Linux 发行版(如 Ubuntu)。对于其他操作系统,请调整相应的包管理器命令。 #### 1. 卸载系统级别的 CMake 如果通过包管理器(例如 APT 或 YUM)安装了 CMake,则可以直接使用包管理器卸载它: ```bash sudo apt-get purge cmake ``` 这一步不仅会移除核心程序 `cmake`,还会清理掉由同一软件包提供的所有附属组件,包括但不限于 `ccmake`、`ctest` 和 `cpack`[^3]。 #### 2. 手动查找并删除残留文件 尽管执行上述命令通常足以完全清除 CMake 软件包的内容,但在某些情况下可能存在未被自动处理的手工安装实例或其他遗留数据。此时需进一步确认是否存在额外的可执行文件或者配置项: - **检查常见路径中的二进制文件** 验证 `/usr/bin`, `/usr/local/bin` 等典型位置是否有剩余的目标文件: ```bash ls /usr/bin/{cmake,ccmake,ctest,cpack} ls /usr/local/bin/{cmake,ccmake,ctest,cpack} ``` 若发现任何匹配条目,则应将其显式删除: ```bash sudo rm -f /usr/bin/{cmake,ccmake,ctest,cpack} sudo rm -f /usr/local/bin/{cmake,ccmake,ctest,cpack} ``` - **定位共享库及其他资源** 此外还需注意可能存留在系统内的动态链接库 (.so 文件) 或者文档资料等辅助材料。一般它们会被放置于如下几个地方之一: - `/usr/lib/` - `/usr/share/doc/` - `/usr/include/` 对以上区域逐一排查,并酌情采取行动予以消除。 #### 3. 清理环境变量设置 假如先前曾修改过 shell 初始化脚本(像是 `.bashrc`, `.zshrc` 等),向 PATH 中加入了指向自定义构建产物的位置,那么现在也需要恢复默认状态以防干扰后续操作。打开对应的配置文件编辑模式: ```bash nano ~/.bashrc ``` 找到类似下面形式的一行或多行代码片段并加以注释或删去: ```bash export PATH=/path/to/custom/cmake:$PATH ``` 保存更改之后得刷新生效范围: ```bash source ~/.bashrc ``` 至此为止已经彻底清除了旧有的 CMake 实例连同它的全部衍生物,接下来即可放心着手准备新版本的部署工作了。 --- ### 注意事项 在实际应用过程中需要注意的是,强制性地抹消所有相关内容可能会带来意想不到的影响,特别是那些依赖于此套件正常运作的应用场景。所以在正式实施前最好先备份重要信息;另外考虑到跨平台特性差异较大,具体实施方案还需要依据实际情况灵活变通[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值