首页 > 代码库 > 记录linux /bin被误删除的解决过程

记录linux /bin被误删除的解决过程

1、事因:

执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf /

事发时及时ctrl+c中断,导致只有/bin /boot目录删除

 

2、造成后果

大部分/bin下的shell命令无法执行,例如ls mkdir chmod tar ssh login。。。也就是想ssh远程登录也不行了。

 

3、解决过程

1)、好在我当前ssh会话没有关上,虽然新会话没有办法远程ssh,但只要现在这个会话不关闭那么就可以一直用着………………

2)、从集群其他机器将/bin里边的目录考入,因为tar和scp都用不了,所以使用一个取巧的方法,将shell文件放到web服务器的web目录,通过wget进行下载。

3)、。。。。但是,没有权限啊!!没有权限啊!!!  因为chmod也被删除了,无法赋值权限

4)、网上查这种情况没有办法,只能去机房使用系统光盘恢复bin目录,可怜的运维兄弟华丽的被我给坑了……我们真心不愿意去那该死的机房 ,太远太偏僻啦!方圆一公里尼玛连吃饭的地方都没有,想吃饭得去村儿啦啊啊啊!!!

5)、。。。在我们出发前曙光发生了,在一个台湾网站发现了通过perl来赋权限的方法,代码如下:perl -e "chmod 0777, ‘mkdir‘"

大概原理应该是perl中本身存在自己的赋权限的函数,所有通过perl可以给方法权限。。。。。

6)、权限赋上问题就好解决了……从别的节点考/bin /boot就好了…………

7)、shell命令都可以使用,但是boot这块会有风险,有可能导致重启机器会启不来;

所以解决方案分两部分,一部分是运维兄弟拿虚拟机测试一下删除/boot,然后再恢复/boot,最后再重启机器看看是否会出现问题;

另一部分是因为当前节点是master节点,申请采购新机器,将master在新机器做成ha,将这个问题机器平滑下线。

 

4、教训

1)、以前都说回收root权限,一直觉得小心小心就好了,没想到出来混真的是早晚都要挨刀;这两天就把root权限回收,以后root能不用就不用了!

2)、所有的rm -rf删除路径要删除是否为空……为空时不做删除。

 

记录linux /bin被误删除的解决过程