写了个Bug,误执行rm -fr /*,瞬间背后一凉( 二 )
还好这次是比较幸运 , 因为在执行脚本的时候 , 第一时间发现不对劲 , 立马掐断了还在运行的脚本 , 所以并非 Linux 所有文件都被删除了 。
只要我掐的快 , rm -fr /* 就干不死我 。 虽然 ls 被删了 , 但所幸发现 cd 命令还能用 。
只要 cd 用的好 , 它也能用出的 ls 效果 。 很简单 , 只需 cd + Tab 键就会自动出现指定目录下的所有文件 。
本文插图
有了 cd+Tab 键 , 我们就可以查看每个目录下的文件 , 于是就可以一步一步来确认哪些系统文件被删了 。
通过一番的确认和对比后 , 发现主要被删除的有四个目录分别是:
- /bin 、/boot 、/dev 这三个目录整个都被删除了 。
- /lib 目录里的动态库部分被删除 。
- /bin 存放常用系统命令 , ls、cp、rm、chmod 等常用命令都在此目录 。
- /boot 系统启动目录 , 保存与系统启动相关的文件 , 如内核文件和启动引导程序 。
- /dev 设备文件保存位置 。
- /lib 存放程序所需的动态库和静态库文件 。
cd 命令是在 /sin 目录下 , /sin 还健全 , 所以 cd 是可以正常使用 。
所幸重要的数据库信息和文件都还没删除 , 所以小林首要的目标是要恢复 /bin、/boot、/dev、/lib 这四个目录 。
还原文件
由于 /bin 目录 和 /lib 部分动态文件被删除 , 常用的传递文件的方式是无法使用的 , 如 ftp、scp、mount 等 。
我摸索了很久 , 竟然发现 wget 可以使用 , wget 命令是在 /usr/bin 目录 , 所幸 /usr/bin 还健全 。
于是 , 用了取巧的方法 , 先另一台正常的服务器 , 把 /bin 目录放到了 Web 服务器的 Web 目录 , 接着通过 wget 进行下载 。
本文插图
有戏 , 看到了成功的曙光 。
但是新的问题就来了 , 我下载过来的命令文件 , 是没有执行权限的 。
本文插图
而 chmod 命令是在 /bin 目录的 , 它同样也被删除了 , 无法使用它来给予文件权限 。
还在 , 在网上搜到了一个伟大命令 perl , 可以通过它来给予文件权限:
perl -e ''chmod 777, 'ls''' 【写了个Bug,误执行rm -fr /*,瞬间背后一凉】真是个神奇的命令 。 好了 , 这下赋值权限问题也解决了 , 成功在望了 。
wget 是无法直接把 /bin 目录下载下来的 , 只能下载一个文件 。
但是我不可能一个一个去下载来进行恢复 , 这得要何年何月才能完成......
于是我就想到了一个方法:
- 先通过 wget 的方式下载 tar 命令 , 并通过 perl 给予 tar 命令权限 。
- 接着把另一台服务器把 /bin 目录打包成压缩文件 , 然后通过 wget 下载 bin 目录的压缩包文件 。
- 最后通过 tar 命令把 bin 压缩包解压出来 。
我的笑容渐渐恢复了回来 , 哈哈哈哈哈哈哈哈哈哈哈哈!
本文插图
遇到 rm -fr /* 删库事件发生 , 一定要沉住气 , 稳住心态!
本次删库事件 , 之所以能幸运的恢复回来 , 有非常关键两点:
推荐阅读
- 每日经济新闻|大族激光这家子公司前脚成为被执行人,后脚准备分拆上市?
- 新设技|一直在引发话题的马斯克,这次真的改写了人类航天史!
- 驱动之家|Win10 2004 又有新 bug?自动登录到底哪去了
- 雷科技|苹果最强Bug!千万别更新iOS,会立刻死机,目前无解
- 火星SpaceX载人飞船成功对接ISS;中国将在7-8月执行首次火星探测
- So财富|特斯拉首席执行官埃隆·马斯克通过SpaceX创造历史。
- 驱动之家|iPad Pro曝恶性Bug:无限重启 重置都不管用
- |阿里巴巴执行副总裁曾鸣:区块链创业是一场长跑
- 物联网智库|马斯克的星际飞船炸了!但不是明天执行载人航天任务的那艘~
- zol中关村在线|Win 10五月更新刚刚发布 BUG就来了