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被误删除的解决过程的更多相关文章

  1. linux Kernell crash dump------kdump 的安装设置+Linux系统崩溃的修复解决过程+mysql+kvm

    http://www.ibm.com/developerworks/cn/linux/l-cn-dumpanalyse/https://www.kernel.org/pub/linux/utils/k ...

  2. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  3. [转]线上GC故障解决过程记录

    排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助.本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http: ...

  4. 一次线上GC故障解决过程记录

    排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助.本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http: ...

  5. IIS发布网站 报错500.19 错误解决过程记录

    首先先报上我的环境 WindowsServer 2012 IIS 8.5 网站是FrameWork 4.0 发布网站后浏览,报错信息如下: 解决过程记录如下: 1.看到这个问题首先想到的是权限问题,设 ...

  6. 记录今天客户的SQLSERVER启动不起来( 错误9003)的解决过程2013-11-26

    记录今天客户的SQLSERVER启动不起来( 错误9003)的解决过程2013-11-26 今天一大早上班就接到客户的电话,说:SQLSERVER启动不起来,业务系统使用不了 于是我就使用QQ远程,帮 ...

  7. 一次Linux LVM VG丢失完整找回过程记录

    某客户的一台PC服务器连接了一台HP EVA 的FC SAN存储,划了一个6T的LUN分作一个单独的VG使用,在某一次异常掉电之后,发现该VG完全丢失,使用vgs/pvs/lvs命令均无法找到此VG及 ...

  8. 记录Linux下安装elasticSearch时遇到的一些错误

    记录Linux下安装elasticSearch时遇到的一些错误 http://blog.sina.com.cn/s/blog_c90ce4e001032f7w.html (2016-11-02 22: ...

  9. 如何记录linux终端下的操作日志

    如何记录linux终端下的操作日志 在linux终端下,为方便检查操作中可能出现的错误,以及避免屏幕滚屏的限制,我们可以把操作日志记录下来.常用的工具有 screen,script,以及tee等,通过 ...

随机推荐

  1. fastReport 运行时设计报表 (mtm)

    设计报表 通过“TfrxReport.DesignReport”方法调用报表设计器.你必须在你的项目中包含报表设计器 (必要条件是:要么使用“TfrxDesigner”组件,要么增加“frxDesgn ...

  2. perl 二维数组

    perl没有真正的二维数组,所谓的二维数组其实是把一维数组以引用的方式放到另外一个一维数组. 二维数组定义 : my @array1=([1,2],[3,4],[45,9],[66,-5]);     ...

  3. iOS MD5加密实现方法

    使用方法 先导入头文件 #import "MD5.h" //md5测试 NSString * md1= [MD5 md5:" ]; NSLog(@"32bit= ...

  4. yii过滤器的原理和使用

    过滤器官方页面:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.controller 过滤器是一段代码,可被配置在控制器动作执行之前或之后 ...

  5. <context-param>与<init-param>

    <context-param>的作用: web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件w ...

  6. [Android Pro] 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能

    reference to : http://www.cnblogs.com/soaringEveryday/p/4991563.html 以往的Android开发有一个头疼的且拖慢速度的问题,就是你每 ...

  7. 选择题(codevs 2919)

    2919 选择题  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 某同学考试,在N*M的答题卡上写 ...

  8. C#冒泡排序

    C#最简单的冒泡排序,需要的朋友可作参考: 思路: 使用两个for循环,就可以遍历数组,这样就可以确保每个数组元素都被使用 对比前后两个数,将小的数字和大的交换位置,引入一个临时变量temp来进行交换 ...

  9. UML类图五种关系与代码的对应关系

    转: UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系 ...

  10. 20145206《Java程序设计》第10周学习总结

    20145206 <Java程序设计>第10周学习总结 博客学习内容总结 什么是网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定 ...