前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统实验 rm -rf /* 及如何抢救和预防

Linux系统实验 rm -rf /* 及如何抢救和预防

原创
作者头像
用户8639654
修改2021-08-09 14:23:31
1.6K0
修改2021-08-09 14:23:31
举报
文章被收录于专栏:云计算运维

想必大家都听说过一个笑话:一个程序员去公司面试,面试官让他随便写个shell脚本看看 结果程序员在公司机器上写了个简单的 rm -rf /*

然后就开始看到系统开始从根目录开始删除

开始报一些无法删除的错误

因为一些正在运转的misc net等硬件文件 无法删除

当我们误操作的时候,发现这些rm: cannot remove...,就赶紧中止还有得救

相关路径解读

boot:启动路径,部分文件,正在运行删不掉。

misc net:硬件相关运行中,不允许删除。

dev/shm:

/dev:目录下一般都是一些设备硬件文件,例如磁盘、内存、摄像头、网卡等等。

/dev/shm:这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。

其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)

dev/pts/ptmx

ptmx 虚拟终端相关文件 系统不让删除

Linux终端:

另外sys目录下的一些系统文件包括,

挂载的磁盘信息等,root也是没有权限删除的,

其余的文件夹 opt mnt home root等等 统统被删除

Linux挣扎了一下:sys/block的块设备不让删除、

nfs文件系统的缓存、挂载记录、锁等不让删除

==============

rm -rf /* 运行完之后

删除完成之后,我们在根目录下看一下:

ls 命令已经没有了,这是因为存放命令的/bin目录下的所有二进制命令文件都被删除了,

包括 yum pwd 等等统统没有了,只有cd命令还在,

这是因为cd命令并不在/bin下

whereis cd :查看一下,cd在/usr/bin目录下

可以看到根目录下 只剩下/boot的启动文件夹。

硬件相关的misc net dev

sys系统相关文件夹

这是给我们下次启动时 进行启动牵引,牵引到grub界面 之后,由

于系统中所有的东西都被我们删除了,所以就卡死在grub界面 无法进内核。

抢救及预防措施

这个命令是极其危险的,所以一旦误操作

1、中止命令

首先,在意识到命令执行时,立即按Ctrl+C 终止命令。尽可能的保护系统文件。

2、不要退出当前shell,不要重启

因为,我们不清楚,到底有哪些文件被删除了。

我们总会下意识的觉得,重启下就好了。这个时候千万不要重启,因为一重启,你可能无法再进入系统,连最后抢救的机会都没有了。

3、系统文件夹迁移

系统根目录下,大体就是这几个文件夹。

像/bin /sbin :主要是存储一些命令的文件夹。如果被删除了,我们可以通过从其他的服务器,将/bin目录,压缩,拷到当前服务器解压,进行替换。

4、系统快照

这是一个非常实用的方法。我们可以定时做系统快照,例如:每天凌晨2点,对系统做一个快照;也可以每逢比较重大的系统更新或者服务搭建之后,做一个快照。

这样,当我们误操作之后,就会有一个回退的备份。

5、命令重写

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档