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. 向数据库中全部表中增加一个字段的SQL

    SELECT 'ALTER TABLE ' + NAME + ' ADD 字段名 int not null default 0' FROM sysobjects AS sWHERE s.[type] ...

  2. C++ STL 的实现:

    C++ STL 的实现: 1.vector  底层数据结构为数组 ,支持快速随机访问 2.list    底层数据结构为双向链表,支持快速增删 3.deque   底层数据结构为一个中央控制器和多个缓 ...

  3. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  4. 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。

    在网上下了个源码打开报错. 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件. 一查,原来是路径错误. 解决办法:将项目文件(.csproj)用记事本打开,然后找到<I ...

  5. [转][Android]FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别

    原文链接:http://blog.csdn.net/zhaokaiqiang1992 FragmentPagerAdapter是android-support-v4支持包里面出现的一个新的适配器,继承 ...

  6. pair<>结构体模版的用法

    1.pair算是一个结构体模版,定义的时候是这样的: pair<T1,T2> P; 其中T1,T2可以是int,string,double,甚至是vector<>. 2.进行初 ...

  7. C++基础练习题(一): 查找最短单词

    /*<说明> 编程实现将字符串中最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词的查找 </说明>*/ #include<time.h> #inclu ...

  8. Android笔记:菜单

    1.按键调出菜单 public boolean onCreateOptionsMenu(Menu menu) 重写建立菜单方法 public boolean onOptionsItemSelected ...

  9. 让chrome的控制台更高大上(装B用)

    作为一名屌丝前端程序员,在装B的道路上是越走越远了!废话不多说,直接先上几张图:我的Element是这样的: 我的console是这个样子的: 我的Timeline是这个样子的: ---------- ...

  10. ios框架

    iPhone OS(现在叫iOS)是iPhone, iPod touch 和 iPad 设备的操作系统.        1,Core OS: 是用FreeBSD和Mach所改写的Darwin, 是开源 ...