没有执行过rm -rf /*的开发不是好运维

起因

突然收到用户反馈说网站在手机端打开是白屏, 很奇怪的问题.

在电脑端试了下,确实也是白屏,HTML加载进来了,好像有个核心JS加载失败.

看到一个错误是: We're sorry but house doesn't work properly without JavaScript enabled. Please enable it to continue.

还有一个http请求的错误是: ERR_INCOMPLETE_CHUNKED_ENCODING

于是尝试了一下的解决方案:

  • 无脑重启看看能不能解决问题?重启了一下对应Docker容器,无果

  • 可能是现在版本引入的Bug?回滚代码重新build,无果.

  • nginx的问题? 重启nginx,无果.

  • 查看nginx日志,没什么有用的东西,无果.

灵机一闪,不会是磁盘空间满了吧.

df -h 看了一眼,99.99%的磁盘使用率.

某个Docker容器的磁盘空间用掉了34G.

看一眼Docker容器,直觉告诉我应该是Elasticsearch服务...

不算太重要的服务,先停了清理空间再说.

删掉了容器删了data文件,重启nginx,一切都正常Work了.

问题解决!!!

不过Elasticsearch总要重新回复回来嘛,看了下腾讯云云硬盘盘价格,也不是很贵嘛.

单独给Elasticsearch 起个数据盘吧.

作死开始

首先根据腾讯云的指示,挂在了数据盘到服务器上面.

然后给数据盘分区,接着mount到对应的路径.

嗯,好像有个警告.

难道不是这个磁盘么?换另外一个看看.

执行另外一个mount.

全程命令如下:

进入对应目录清空一下云盘数据吧.(PS:脑子有病才做这个,刚刚初始化的云盘哪有东西.)

ls 看一下,咋这么多奇奇怪怪的文件,难道是原来Elasticsearch docker 容器留下来的.

先删了再说.

执行 rm -rf ./*

咦,怎么有文件busy无法删除.

额,咋ls都没有了.

哈?cat 也没有了.

噗,copy也炸了.

cd 还在.

哇卡,这可咋办了.

先复盘一下做了什么事情

  • 初始化磁盘的时候没有格式化,但是mount失败

  • mount失败后没有检查原因,直接尝试把另一个磁盘mount进去

  • mount系统盘到指定文件夹后并没有检查内容,直接rm -rf ./*

  • rm -rf ./* 此时已经基本没救了

拯救尝试

还在跑的服务基本是活着的,所以暂时来说API和Web网站都是好的。

服务器上面跑的基本都是Docker容器, Docker镜像都在阿里云上面存着,基本不怕丢失的问题。

不过应用配置文件/服务器证书之类的东西都在上面,这个估计要折腾一下了。

cd 还能用,ls没了,cat也没了。

尝试cat xxx.conf也没用了,难道只能一点点翻配置文件么.

群里的朋友提了一句,看看你的云盘有没有备份之类的.

咦,好像两个星期前找腾讯云技术支持的时候做过一次系统镜像.

是不是可以直接拿回来直接用?

看了下具体的镜像版本和备注信息,看起来那时候上面的内容和现在的估计没太多变化.

直接重装之后更新一下各个服务的镜像到最新版本应该就好了.

放弃拯救,直接使用备份的系统镜像重装

Work...

系统备份镜像拯救世界!!!

后续操作 + 总结

  • 数据盘和系统盘分开,不要让程序的数据导致系统不可用

  • 在费用允许的情况下设置磁盘快照策略,我这边最极端的情况下也应该能回滚到一个星期前的版本

  • 下次大影响操作前先手动备份系统镜像,救命稻草一般的存在.

没有执行过rm -rf /*的开发不是好运维的更多相关文章

  1. 没执行过 rm -rf /* 的开发不是好运维

    阅读本文大概需要 1 分钟. 打开终端,获取 root 权限,执行以下命令:rm -rf /*,会发生什么呢?估计只要接触过 Linux 的人,肯定没少听过它的故事,清楚之后会发生什么可怕的事情. 科 ...

  2. linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复

    XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统.centos7选择xfs格式作为默认文件系统,而且不 ...

  3. 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件

    高性能Linux服务器 第6章  ext3文件系统反删除利器ext3grep  extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...

  4. centos rm -rf 恢复删除的文件

    Linux有时候执行了 rm -rf 等操作误删了文件绝对是一件可怕的事情,好在有一些解决的办法可以临时救急.这时我们就要用到一款叫做extundelete的工具了. 目录[-] 依赖 安装 查找要恢 ...

  5. 不止跑路,拯救误操作rm -rf /*的小伙儿

    摘要:误执行了 rm -rf /* 之后,除了跑路还能怎么办? 本文分享自华为云社区<拯救被 rm -rf 伤到的小伙>,作者:Gauss 松鼠会. 灵魂画师再次上线   在开饭前我们先了 ...

  6. [sh]rm -rf*的防护和普通用户执行命令

    尽量用普通用户执行,因为普通用户无法删除root的文件,避免误删除 rm -rf 不可取, 尽量find+rm -rf 尽量cd && rm -rf * 加上逻辑 cd /tmp/re ...

  7. mac 上执行 rm -rf /

    # 很可怕的指令,清空磁盘所有资料,千万不要用 sudo 尝试,吓的小心肝差掉跳出来 rm -rf / 无聊,想执行rm -rf /会怎样,想起没加sudo时对~/download执行提示权限不足,被 ...

  8. 执行"rm -rf /"之后世界安静了吗

    对于Unix/Linux程序员来说,"rm -rf /"一直被认为是一个极度危险的操作,因为直接把根目录给删除了,整个操作系统也就崩溃了.但实际上会是这样的吗?呵呵,请看图: 啊哈 ...

  9. paramiko使用exec_command执行rm -rf删除目录的坑

    paramiko删除目录后的上传操作请参考步骤1.2.3的说明 try: ssh = SSHClient(ip,user) sftpClient = ssh.getSftpClient() outpu ...

随机推荐

  1. Linux磁盘管理.md

    df df 即“可用磁盘”disk free,用于显示文件系统的磁盘使用情况.默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输 ...

  2. 第04章-VTK基础(7)

    [译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年.ISBN: 978-1-930934- ...

  3. 笔试面试之C++

    7 类B是类A的公有派生类, 类A和类B中都定义了虚函数func(), p 是一个指向类A对象的指针,则p->A::func()将() A 调用类A中的函数 B 调用类B中的函数 C 根据p所指 ...

  4. 【vue】饿了么项目-使用webpack打包项目

    1.vue cli给我们提供了npm run build命令打包项目,在packa.json文件中scripts对象中有build属性,当我们执行npm run build时,就执行build对应的& ...

  5. mail发邮件报错 "send-mail: fatal: parameter inet_interfaces: no local interface found for ::1"

      发送邮件: [root@itfswelog123]# echo '测试邮件标题' | mail -s "数据库挂啦.挂啦.起床啦 "   xx@163.com 出现异常: [r ...

  6. 基于maven的JavaWeb项目构建部署

    需要准备的安装文件: 1 JDk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html jdk-8 ...

  7. 错误的另一个常见原因是默认的安全组规则。default security group默认情况下不允许ICMP(ping命令使用的协议)

    可以在openstack horizon界面中添加ICMP和ssh(TCP)规则,也可以通过命令行.命令行方式给默认安全组添加规则的方法如下: $ nova secgroup-add-rule def ...

  8. 奇妙的CSS3—导航栏下划线跟随效果

    先来看一下效果: 1.基本效果就是这样的 ,鼠标悬停,下划线划入.鼠标离开,下划线划出 2.下划线的划入是有方向的,从左侧划入悬停,下划线由左向右伸长.从右侧划入,下划线由又往左伸长 实现思路 1.导 ...

  9. 转:Sql Server中清空所有数据表中的记录

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍.   使用sql删除数据库中所有表是不难的 ...

  10. mysql面试常见题目

    第一题 某班学生和考试成绩信息如下表Student所示: Student表 ID SName Mark 1 Jack 90 2 Marry 96 3 Rose 88 4 Bob 86 5 John 8 ...