故事背景
在一个周日的上午,有一个自大且睡眼惺忪菜鸟(也就是我自己😂)准备更新服务器上的测试程序的jar包并重启服务。只见他熟练地快速敲打键盘,cd /path、kill pid、rm -rf ./file。由于都是些简单又敲过无数遍的命令,他打着哈欠输入了一个又一个。然而不出意外的话就出意外了...... 当他删除日志文件夹时把 rm -rf ./log 敲成了 rm -rf /lib。在这一瞬间,他犹如被电击一般,瞬间清醒了起来。脑子开始飞速运转,从如何百度,如何问gpt到是不是该跑到泰国然后老挝、柬埔寨
处理步骤
1、冷静分析问题
在发现自己误删了目录的lib文件夹后,心里就开始慌张了起来,第一反应就去百度寻找一个靠谱的恢复文件的方法,但是在按照百度上办法试着找到被删除的文件时,发现有一些命令已经执行不了了,比如grep等命令,于是尝试恢复文件的计划暂时被打断。在这十多分钟的兵荒马乱后,我渐渐的冷静下来。这时一个想法涌入脑海------在根目录下执行ll命令后,嘴角开始微微上扬。
lib文件应该是系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都要用到这些共享库.
2、定位问题
执行完 ll 命令后,看到了根目录下有一些是软链接,这时想到根目录下的lib应该也是一个软链接。此时登录其它服务器并到根目录下执行 ll,发现确实如此。于是再通过history命令查看我删除lib文件的命令为:rm -rf /lib,至此确定我只是删除了lib的软链接,这个软链接指向的是 /usr/lib
3、解决问题
在根目录下重新创建一个软链接并指向 usr/lib,在根目录下执行命令 ln -s /usr/lib /lib 。至此,服务器已经恢复正常。
这里还好我误操作的命令是 rm -rf /lib 而不是 rm -rf /lib/,如果是后面的命令的话,那直接也就把指向的 /usr/lib 也删除掉了。
4、软链接知识点
软链接(也称为符号链接或symlink)是指一个特殊类型的文件,它包含了另一个文件或目录的路径信息。也就是说,软链接是一个指向另一个对象的快捷方式,它不共享相同的内容,属性和权限。软链接可以跨越不同的分区和文件系统创建。
通俗来说软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个不同的链接,类似于windows的快捷方式。
shell
# 创建软链接命令
ln -s 源文件或目录 目标软链接文件名
# 删除软链接命令
rm file
总结
在执行rm 高危操作时还是需要"三思而后行",遇到问题一定要冷静分析,然后寻找最合理的解决办法。(祝大家永不加班!)