原文链接
前言
由于不同发行版本以及删除程度不同,该解决方案不一定适合所有人,基本是就把/usr/bin下文件删完了,但是一些基础库还在,可以参考本文
解决方案
如果有备份直接用备份就行了,这种就不用多谈,或者有其他的运维恢复方案,直接使用就行。在啥都没有的情况下,要么就只能重装,要么就需要从别的服务器复制过来,完全重装或者使用Live
盘的方式网上教程很多,我们这里主要说明如何从其他服务器复制到本地
文件源很好找,找个相同发行版本的服务器或者虚拟机器,在/usr
将其打包即可,最后获得文件usr.tar.gz
。可在受损机器上,此时我们使用scp
、curl
、sftp
、rz
、wget
均无法从本地或者互联网获取数据。但是其实还有一个类似的命令并不是放在/usr/bin
下的,和其他基础命令一样是放在/bin
下,这个就是nc
命令,我们可以利用这个命令完成数据传输
- 在受损服务器中使用
nc
监听某个端口:nc -l -p 5525 > usr.tar.gz
- 然后在文件源服务器发送该文件
nc remote_host_ip 5525 < /path/to/usr.tar.gz
- 通过其他
shell
确认获取文件大小相同后,直接取消传输,即可在受损服务器中获取到usr.tar.gz
- 最后在
usr
下解压该文件即可tar -xzvf usr.tar.gz --skip-old-files
这样就基本完成了,但是部分包可能需要重装一下,以Ubuntu
举例,重装命令为sudo apt-get install --reinstall python