没有执行过rm -rf /*的开发不是好运维
没有执行过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 /*的开发不是好运维的更多相关文章
- 没执行过 rm -rf /* 的开发不是好运维
阅读本文大概需要 1 分钟. 打开终端,获取 root 权限,执行以下命令:rm -rf /*,会发生什么呢?估计只要接触过 Linux 的人,肯定没少听过它的故事,清楚之后会发生什么可怕的事情. 科 ...
- linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复
XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统.centos7选择xfs格式作为默认文件系统,而且不 ...
- 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件
高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...
- centos rm -rf 恢复删除的文件
Linux有时候执行了 rm -rf 等操作误删了文件绝对是一件可怕的事情,好在有一些解决的办法可以临时救急.这时我们就要用到一款叫做extundelete的工具了. 目录[-] 依赖 安装 查找要恢 ...
- 不止跑路,拯救误操作rm -rf /*的小伙儿
摘要:误执行了 rm -rf /* 之后,除了跑路还能怎么办? 本文分享自华为云社区<拯救被 rm -rf 伤到的小伙>,作者:Gauss 松鼠会. 灵魂画师再次上线 在开饭前我们先了 ...
- [sh]rm -rf*的防护和普通用户执行命令
尽量用普通用户执行,因为普通用户无法删除root的文件,避免误删除 rm -rf 不可取, 尽量find+rm -rf 尽量cd && rm -rf * 加上逻辑 cd /tmp/re ...
- mac 上执行 rm -rf /
# 很可怕的指令,清空磁盘所有资料,千万不要用 sudo 尝试,吓的小心肝差掉跳出来 rm -rf / 无聊,想执行rm -rf /会怎样,想起没加sudo时对~/download执行提示权限不足,被 ...
- 执行"rm -rf /"之后世界安静了吗
对于Unix/Linux程序员来说,"rm -rf /"一直被认为是一个极度危险的操作,因为直接把根目录给删除了,整个操作系统也就崩溃了.但实际上会是这样的吗?呵呵,请看图: 啊哈 ...
- paramiko使用exec_command执行rm -rf删除目录的坑
paramiko删除目录后的上传操作请参考步骤1.2.3的说明 try: ssh = SSHClient(ip,user) sftpClient = ssh.getSftpClient() outpu ...
随机推荐
- HDU 4652 Dice
嘟嘟嘟 题目大意就是对于一个m面的骰子,回答这么两个问题: 1.求连续扔n次都是同一数字的期望次数. 2.求连续扔n次每一次数字都不相同的期望次数. 对于期望dp特别菜的我来说,这道题已经算是很难了. ...
- 【JavaScript】插件参数的写法
就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...
- 【vue.js】入门
慕课网视频学习笔记:http://www.imooc.com/learn/694 1.将html.js.css写到一个后缀名.vue的文件中,区分这三种类型是通过<template>.&l ...
- browserify文件后函数调用报is not defined的原因
举个例子: a.js ; module.exports.a = a; b.js var result = require('./a'); var getA =() => { console.lo ...
- 关于"XML 文档(2, 2)中有错误:不应有 <xml xmlns=''>"错误
XML文件名 <?xml version="1.0" encoding="utf-8"?> <Config xmlns:xsi="h ...
- 13.56Mhz SI522兼容MFRC522的资料以及对比性能
(13.56Mhz芯片) SI522是一颗专门替代MFRC522/FM17522,PIN对PIN 完全软硬件兼容.相对于MFRC522,SI522完全替换,不需要做任何更改,同时接受模式下功耗低10m ...
- Linux下Java性能监控
Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...
- Jfinal框架登陆页面的图形验证码
本文转自,http://www.bubuko.com/infodetail-720511.html 验证码的工具类, 这个jfinal自带的也有,但是下面这个和Jfinal自带的有一点点小的改动,(我 ...
- iOS之oc与html之间的交互(oc中调用js的方法)
一.运行的效果图 1.刚开始的效果 2.运行结束后的效果 二.准备工作 1.准备一个html文件导入到oc工程中 2.jiaohu.html文件的原始内容 3.从oc语言中操作.html文 ...
- 如何设计处优秀的Restful API
只知道遵规循矩的程序员是假程序员,任何技术都是不断发明创造改进的. 如何设计处优秀的Restful API? 盲目跟风,设计糟糕的Resful API = 浪费时间 ! 不啰嗦,直接进入技术主题: ...