生产环境中如何防止rm -ef 删库操作?

有这样一个故事

在这里插入图片描述
在一个风和日丽的下雨天,某猿带着还未从睡梦中醒来的脑子,打开了服务器,完成了一套华丽的rm -ef操作.
对于linux 很多人都认为将用root权限将系统“rm -rf /”整个盘的数据将会丢失,首先请不要紧张不要对数据盘执行任何操作。如果命令正在执行请立即停止 Ctrl+c。执行“rm -rf /” 后整个系统将会逐步从根目录按照字母表表的先后顺序删除。

然后先思考下能不能跑路,如果没法跑路,就继续接着往下看吧。
在这里插入图片描述

首先盘一盘如何防止误操作

为了避免误删根目录,或者重要的文件,整理了以下方法:

1、safe-rm

safe-rm 是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。

可以将 safe-rm 更名为 rm 并放在 $PATH 中比 原rm 程序靠前的位置。一些脚本中使用完全路径/bin/rm则不会受此影响。

    $ rm -rf /etc/
    safe-rm: skipping /etc/

官方地址:http://freecode.com/projects/safe-rm,ubuntu可以直接apt-get安装,centos要下载源码安装。
在这里插入图片描述

2、建立回收站机制

它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清除回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间。

可以写个shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站。

1) 在/home/username/ 目录下新建一个目录,命名为:.trash
2)在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh
    TRASH_DIR="/home/username/.trash"  
    
    for i in $*; do  
        STAMP=`date +%s`  
        fileName=`basename $i`  
        mv $i $TRASH_DIR/$fileName.$STAMP  
    done
3)修改~/.bashrc, 增加一行
alias rm="sh /home/username/tools/remove.sh"

用我们自建的remove.sh替代rm命令

4)设置crontab,定期清空垃圾箱,如:
0 0 * * * rm -rf /home/username/.trash/*

每天0点清空垃圾箱

5)source ~/.bashrc 使替换立即生效

3、使用别名:将 rm -rf 命令替换为别名,例如 alias rm=‘rm -i’,这样每次执行 rm 命令时都会提示用户确认删除操作。

4、使用 chmod:使用 chmod 命令将 rm 命令的执行权限去掉,这样用户就无法执行 rm 命令了。

5、使用 chattr:使用 chattr 命令将目录或文件设置为只读,这样用户就无法删除文件或目录。

6、各种备份

可以异地远程备份重要的数据,采用dump的增量备份机制,LVM快照,虚拟化环境中的快照、raid5等等。

当然上面的内容对你来说没用,这个时候你已经删库了,上面内容对你来说属于马后炮!那我们来看下面的内容

1. 立即停机,不要指望能够进入以前的系统。千万千万不要重新安装系统后再试图用软件恢复,那个时候不管用任何方式都是徒劳,切记切记!!
2. 如果系统在本地,立即将磁盘取出,挂载到新服务器。如果在云盘,联系服务商将将系统(损坏了的系统)镜像(等同于拆下了硬盘), 然后通常云服务器都可以再将损坏了的系统进行挂载。
  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岛森年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值