rm -rf /* 或/bin/目录被删除补救 /bin/sh: bad interpreter: No such file or directory
一、踩坑过程:
着急的同学可以直接跳到第二部分“解决办法”。
对,是我。今天的我不配自称一个工作多年的互联网人(大哭)。
其实早知道rm -rf /*这个命令的毁灭性,所以以往用rm -rf的时候都很谨慎,今天手比脑子快了。本想删除代码路径下的代码重新拉取,结果命令里多个斜杠。。。在我1s内就意识到问题的严重性并立即执行ctrl+c的时候还是晚了。
先是发现基本的ls等命令用不了,修改了环境变量$PATH(命令export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin )后可以了。
但执行mvn clean的时候再次提示:-bash: /usr/bin/mvn: /bin/sh: bad interpreter: No such file or directory
感觉到不妙,新开窗口通过ssh连接服务器,果真连接不上了。。。
以为sshd服务失败了,执行service sshd start,提示:-bash: /usr/sbin/service: /bin/sh: bad interpreter: No such file or directory
知道问题的源头是rm -rf /*(这个命令就是告诉机器自我毁灭吧,为了防止AI不受人类控制么?),按照这个查,边翻网页边觉得被嘲笑且被自己蠢到了。看资料后明白是因为这个毁灭命令删除了服务器的/bin文件,于是好多bash命令就都用不了了。解决办法就是恢复bin目录。
另附:-bash: XXX: XXX: bad interpreter: No such file or directory类似的问题的原因有两种:
1. 环境变量,将要运行的服务的运行程序目录加到环境变量里
2. 是不是把/bin删没了。。。
二、解决办法:
适用范围:
1. 问题服务器A的连接还没断,例如还通过ssh连着
2. 有跟服务器B同等配置的linux可获取bin目录内容
步骤:
1. 连接服务器B,将/bin目录下的内容打包
cd /
tar cvf bin.tar bin
2. 在服务器B通过python的SimpleHTTPServer共享目录
python -m SimpleHTTPServer
参考:https://www.cnblogs.com/zxingwork/p/10837218.html
3. 在问题服务器A上通过wget获取bin.tar,然后解压
cd /
wget http://X.X.X.X:8000/bin.tar
tar -xvf bin.tar
中间尝试了scp、nc、rsync等办法都不行,因为这些都依赖sshd服务,而此时这台机器的sshd服务已不可用。
wget的思路简直是神来之笔,谢谢大神!大神还遇到了tar命令不可用等复杂情况,可参考:https://blog.csdn.net/weixin_30484247/article/details/97061338
不敢断连服务器,利用两个小时把问题解决了,感觉我又站起来了,一种“这种程序员死穴都被我解决了,以后还有啥问题搞不定?!(不是,划掉)”的感觉。
相关文章
- 删除win10安全中心威胁历史记录
- Java File文件操作 创建文件目录,删除文件目录
- Aspose.Words for .NET查找和替换教程——检查文本并删除文字
- java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
- php 删除目录文件夹的方法
- ubuntu18.04 递归批量删除op_test_xml/ 目录下 .pyc后缀的文件
- iOS NSFileManager对沙盒文件及目录添加删除操作
- Android RecyclerVIew 列表实现 编辑、单选、全选、删除、动画效果(附源码)
- linux中有选择的删除目录中的文件
- koa 基础(二十四)封装 DB 库 --- 新增数据、更新数据、删除数据
- 3 个在 Linux 中永久并安全删除文件和目录的方法
- 定期删除ES过期索引
- Oracle 中删除表后,表的索引,授权,同义词 会自动删除吗?
- DataHub: 现代数据栈的元数据平台--如何删除元数据?
- git如何查找已经被删除文件的历史修改记录?
- php 递归创建目录、递归删除非空目录、迭代创建目录
- find与rm实现查找并删除目录或文件
- 创建、删除表
- js 动态增加行删除行
- java显示目录文件列表和删除目录
- SwiftUI 实战之 02 3D照片轮播图支持手动添加与删除(教程含源码)
- Linux命令行批量删除文件(目录)
- nodejs基础(回调函数、模块、事件、文件读写、目录的创建与删除)
- Windows中删除长路径文件
- 华为OD机试 - 删除指定目录(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- java 递归实现删除或查询指定目录下的全部文件
- 【树莓派】Linux应用相关:自动删除n天前日志
- SqlServer 循环建表、删除表、更新表
- 自引用结构--之链表指定值删除元素