【删库跑路】:误在服务器的根目录执行rm -fr *之后如何拯救服务器数据

事件背景:

在服务器上面执行脚本,需要删除某个目录下面的所有文件,执行rm -rf /dir/*,结果目录不知道咋了,已执行,服务器疯狂报错,感觉不对,立即把脚本停止,此时服务器已经不能执行任何命令

rm -rf  $dir/*

此时应该是直接变成了

rm -fr /*

虽然只运行了几秒钟,但是系统文件该删了基本删除了,如果说此时你有连接xftp文件传输的工具,就可以直接把数据文件拷贝出来,如果没有,那么恭喜,你摊上大事了,这就是传说中的“删库跑路”了

我们平时总是说不开心就rm -fr * ,作为一个运维人员,当我们真的遇上这个事时,真的是很苦逼的
基本恢复系统是不太可能的,只能拯救一些数据了

解决办法

下面就来看看如何拯救服务器的数据吧

  1. 重启系统后,肯定是进不去正常的系统了,所以我们要进入到服务器的最后一道防线-----救援模式
    进入到救援模式的方法网上有很多,可以参考http://www.360doc.com/content/18/0313/10/44856983_736579134.shtml

总的来说,虚拟机通过光盘进入,真实服务器通过制作U盘,用U盘启动进入到救援模式

注:如果进去救援模式下面,有提示chroot /mnt/sysimage/(切换到系统的“/”),那这个就比较简单,可以直接进入到服务器的/下面,一般这种情况损坏的不是很严重,直接恢复系统的可能性也比较大,就算恢复不了,也能直接在根目录把相应的数据文件拷贝出去。

  1. 先确保救援模式下相应命令可以使用,如果不存在,就要把/dev/sr0挂载出来,用rpm安装yum,再安装yum install
    lvm2(但一般救援模式自带lvm2)

  2. 查看物理卷和卷组:用lvscan,pvscan查看,可以看到有/dev/cl下面有3个文件夹,对应我们磁盘sda2和sda3,swap一般是一些临时缓存文件,可以不用处理
    注:这个文件夹的情况根据自己服务器的情况而定
    在这里插入图片描述

  3. 查看逻辑卷:用lvdisplay查看
    在这里插入图片描述

  4. 建立挂载目录,把/dev/cl下面的路径挂载出来

mount  /dev/cl/home   /d1
mount  /dev/cl/root  /d2

如果挂载不成功,先把lvm服务启动,再重新挂载

vgchange -ay /dev/cl

在这里插入图片描述
挂载完成以后是可以看到挂载目录的,由此可见,我的/d2目录下面的数据还是有很多的

  1. 此时服务器是没有网络的,需要临时指派一下IP
    ip a 看下网卡, ifconfig 网卡名 192.168.XXXX netmask XXXX
    这时候就可以把有用的数据scp远程拷贝到其他服务器

总结

执行删除命令时一定要谨慎,建议使用&&,如cd dir && rm –rf ./*,这样的话如果路径不存在,下面的删除语句就不会执行,如果删除的文件是某些特定的文件,一定记得带着相应的后缀名,如.sql,.xls等,这样就可以避免误删除其他文件。

猜你喜欢

转载自blog.csdn.net/ssiyla/article/details/99977961