事情始末

平时经常开玩笑,删库跑路、删库跑路,今天我真的rm -rf *了。早上来,一个同事说要查日志,但是日志我又备份到云磁盘了,我就想着把那一天的日志wget下来看看,然后分析。本来是想放在/var/log/目录下去,但是我看了一下磁盘的根目录可用空间不多了,于是我就cd 到/data数据目录。这一个操作就是万恶之源,在这个目录下,我wget日志下来后,解压,看了之后不是我想要的日志,因为我解压的日志也是data目录。当时我就想删的时候千万不要把根目录下的data(/data)删了,只要删data目录里的data目录(/data/data)这个目录,于是我就敲了一行命令rm -rf data *;回车键下去后,哦豁,已经来不及了。

直接感受

我的天啊,赶紧恢复,能快速恢复,争取不被领导发现。当我发现有数据目录被干掉的时候,还是先汇报。汇报完后想着这是真得跑路了。要说不慌是假的,毕竟正儿八经的生产数据,删掉了找不回,这个损失挺严重的。删了kafka、zookeeper、一个数据库AS。于是想着赶紧从其他机器拷贝对应的应用、中间件过来恢复。但是由于安全等问题得先拷贝到本地,再经过好几层中转才能到机器上。这个时间真的挺长的。但是恢复的过程中,一直在想我为什么会执行这个操作,为什么要删,刚刚放到其他监控机器处理不久不会发生这个事情了吗。

间接影响

有种起死回生的感觉,好像瞬间看开了很多事情。没有什么过不去的坎的感觉。中午吃饭也比平时吃的多了。还吃了两包坚果,喝了一瓶酸奶。本想喝杯奶茶发现还得几天才发工资,还得悠着几天。

技术层复盘

1)集群,集群,集群,至少3节点的集群真的重要
2)数据及时备份
3)现在我们追求k8s、docker这些新技术、完全重要。但是基础也很重要,当你压缩打包一个目录的时候,还得去网上查一下tar的参数、怎么排除日志目录打包。kafka集群恢复,怎么判断新节点加入了集群,怎么判断kafka集群的数据没有丢失,怎么设置他的分片。
4)知识点的查漏补缺,从基础到深入、到精通。从0分到3分到5分到8分,一点一点去补充自己的知识。最近刚好在梳理自己知识体系,很庞大,无从下手。本来觉得可能太基础了,是否有这个必要,但是现在觉得这是必须的,形成文档笔记后,相当于温故了一遍,并且以后可以经常拿出来看。以后比较基础的就不用反反复复重复的开始了,就跟每次学一个东西从hello world开始一样了,可以稍微往深层次的地方开始。
5)要敬畏生产环境、敬畏生产环境、敬畏生产环境。

心态/习惯反思

1)脑袋和手不同步,脑袋想着千万不要删错了,但是手却毫无意识的敲了*。
2)良好的习惯真的重要,平时就养成不要轻易的敲rm * 等危险命令,不要在危险的边缘疯狂的试探。
3)时刻要知道自己在做什么,有一个清醒的头脑,知道自己在做一件什么事情,知道自己这个命令下去的风险是什么,感觉自己平时有点行尸走肉的感觉。也是自己近几年没什么长进的原因,可能是快餐时代的知识导致的,总想着跑的快,却忘了跑的稳。
4)既然想好了要把运维这个当做自己的事业发展,就不应该只满足于工作,而是要以自己的事业的标准要求自己。

交流学习

欢迎大家关注我的公众号,一起交流、学习。

谈谈 rm -rf * 后的几点体会(年轻人得讲码德)的更多相关文章

  1. 在Linux下使用rm -rf /*后会怎样?

    每个工作过的码农,也许不知道分布式,也许不知道高并发,但想必都知道这句鼎鼎大名的代码.本人对此也是比较好奇的,不妨用虚拟机试试看 首先是普通角色: 普通角色把拥有权限的文件全都删掉了后,其他文件的提示 ...

  2. centOS6.4 extundelete工具恢复rm -rf 删除的目录

    PS:补充下,我在fedora 19上运行的时候遇到的一个问题: [root@localhost extundelete-]# ./configure Configuring extundelete ...

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

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

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

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

  5. xargs rm -rf 与 -exec rm

    # find ./ -exec rm {} \; # find ./ | xargs rm -rf 两者都可以把find命令查找到的结果删除,其区别简单的说是前者是把find发现的结果一次性传给exe ...

  6. 用extundelete恢复rm -rf删的文件

    “慎用rm -rf命令,除非你知道此命令带来的后果.”这是一条Linux用户守则,虽然大多数用户都明白这条语句的含义,但是我觉得还需要完善一下,为这条语句加 上一个使用前提:在你确认自己拥有清醒头脑, ...

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

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

  8. 使用trash-cli防止rm -rf 误删除带来的灾难(“事前”非“事后”)

    trash-cli是一个使用 python 开发的软件包,包含 trash-put.restore-trash.trash-list.trash-empty.trash-rm等命令,我们可以通过这写命 ...

  9. centOS6.4 extundelete工具恢复rm -rf 删除的目录[转]

    原文:http://www.cnblogs.com/patf/p/3368765.html PS:补充下,我在fedora 19上运行的时候遇到的一个问题: 1 [root@localhost ext ...

随机推荐

  1. Union-Find算法应用

    上篇文章很多读者对于 Union-Find 算法的应用表示很感兴趣,这篇文章就拿几道 LeetCode 题目来讲讲这个算法的巧妙用法. 首先,复习一下,Union-Find 算法解决的是图的动态连通性 ...

  2. 833. Find And Replace in String —— weekly contest 84

    Find And Replace in String To some string S, we will perform some replacement operations that replac ...

  3. Android基础——项目的文件结构(三)

    Android基础--项目的文件结构(三) 代码源文件夹与资源文件夹 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目中,代码源文件夹有4个 ...

  4. mysql实现当前行的值累加上一行的值

    数据库钱包表有日期.收入.支出三个字段.用mysql语句计算每日余额,得如下结果 select m.*, @total :=@total + 收入 - 支出 as 钱包余额 ( select * fr ...

  5. Javascript 参数传递

    又一个基本概念出问题,参数传递都是值传递, var a={x:10} function test(obj){obj=1} test(a) console.log(a) 输出什么,如果你说1,那就错了, ...

  6. 线程池 ThreadPoolExecutor 原理及源码笔记

    前言 前面在学习 JUC 源码时,很多代码举例中都使用了线程池 ThreadPoolExecutor,并且在工作中也经常用到线程池,所以现在就一步一步看看,线程池的源码,了解其背后的核心原理. 公众号 ...

  7. VGA详解及色块碰撞示例

    引言 VGA:video Graphics array,视频图形阵列,阴极射线显像管(CRT)显示器时代产物,很多老显卡.笔记本电脑.投影仪所用接口,已经比较过时. CRT是模拟设备,所以VGA也采用 ...

  8. spring 2.5 基础知识和与其他框架的集成

    spring环境搭建: 一:导入spring2.5所需的包,在classpath目录下建一个名为"beans.xml"模板文件: <?xml version="1. ...

  9. 分布式监控系统之Zabbix基础使用

    前文我们了解了分布式监控系统zabbix的相关组件的作用和zabbix的部署,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13997582.html:今天我们 ...

  10. React native路由跳转navigate、push、replace的区别

    由于没有系统的去学习RN,对路由跳转了解不多,只是跟着项目在做,抽点时间简单学习一下RN路由跳转方法区别,总结如下: 如上图,外部是一个栈容器,此时A页面在最底部,navigate到B页面,为什么此时 ...