写了个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''' 真是个神奇的命令 。 好了 , 这下赋值权限问题也解决了 , 成功在望了 。
wget 是无法直接把 /bin 目录下载下来的 , 只能下载一个文件 。
但是我不可能一个一个去下载来进行恢复 , 这得要何年何月才能完成......
于是我就想到了一个方法:
- 先通过 wget 的方式下载 tar 命令 , 并通过 perl 给予 tar 命令权限 。
- 接着把另一台服务器把 /bin 目录打包成压缩文件 , 然后通过 wget 下载 bin 目录的压缩包文件 。
- 最后通过 tar 命令把 bin 压缩包解压出来 。
我的笑容渐渐恢复了回来 , 哈哈哈哈哈哈哈哈哈哈哈哈!
本文插图
遇到 rm -fr /* 删库事件发生 , 一定要沉住气 , 稳住心态!
本次删库事件 , 之所以能幸运的恢复回来 , 有非常关键两点:
- 发现脚本执行不正常 , 果断立马的掐断它 , 没有造成重要的数据库信息被删除 , 如果掐断的时候再晚一点 , 可能就真没了 。
- 【药品】这4种药品被纳入青岛全面补充医保支付范围 15日起执行
- 车辆知多少朱晓静成为首任女性总裁及首席执行官,沃尔玛中国换帅
- DV现场丰巢给“亲爱的用户”写了封信,新一轮的讨论又来了→
- 市界联想又成被执行人,一个半月内两次,执行金额超26万元
- 安源区人民法院驻法院纪检监察组到金融审判庭开展金融审判执行岗位廉洁风险座谈会
- 科技边角料执行标的超21万元,58同城再遭法院列为执行人
- [吉林省人民检察院]吉林女子拍得19年前债权 收执行款后被判返还2000万元
- Wind资讯鲍威尔下周给出信号,美联储执行负利率?华尔街众说纷纭
- 科技亿点通手机中国高度评价:一加8 Pro改写了手机显示领域的竞争规则
- 『新规』6月起四川执行农村宅基地管理新规 农户申请宅基地原则上要在两年内完成建房