误操作 rpm -e --nodeps zlib
误删缘由:目的是要升级ssh版本,结果好像是冥冥之中有股力量在作祟迫使我粘了一条致死的命令rpm -e --nodeps zlib就执行了,奇怪的是执行之后根本就全然不知。最后在敲rpm命令时居然报错了:”rpm:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory“ 纳闷半天上翻命令才发现那条刺眼的命令矗立在那儿.........什么时候敲得?为什么会敲这个?这不是我敲的吧?
反正是懵了,老大早上刚给的服务器让我升级呢!!!速速找google蜀黍,讲这是ssh的依赖库,它要是没了,yum、rpm、scp、ssh、rsync、ftp、tftp等命令都没法使用了。补救办法是从其他相同系统的服务器上拷一份libz.so.1(后来发现是libz.so.1.2.3)文件上传至此服务器即可(前提是服务器已经安装了lrzsz),屋漏偏逢连夜雨,就是没装!!!没辙了最后乖乖承认错误寻找解决办法,结果被告知那台服务器在外省那边也没运维相关的技术人员,当时差点都以为自己要去出差了。后来老大联系了那边的一个非技术主管去机房通过微信协助我解决这个问题,几经波折最后总算完美补救了,所以想给大家分享下具体解决过程,避免多走弯路。
第一步:刚开始系统都起不来的,所以只能进入单用户模式补救。进入单用户方法:
1、启动的时候,提示“press any key to enter menu”,这时回车。若有加grub密码,需要先按p,输入密码方可进行后面的操作。
出现: “CentOS (2.6.32-358.e16.i686)” 菜单。
下面有提示:输入'e' to edit the commands before booting.
因此,我们输入 'e'字符,接着的界面会有3个选项出现:
root (hd0,0)
kernel /vmlinuz-...
initrd /initramfs...
2、 选择中“kernel ...”这一行,然后按下"e"键,这时提示:
<BOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
我们在这行的末尾输入 " single“或者"1” (注意,single前面有个空格),回车。
这将回到3个选项的那个界面(这时第二项依旧处于选中状态),然后按下 'b'
3、然后等待,操作系统启动完成,期间不需要输入密码!命令行显示为:
[root@localhost /]#
第二步:因为目前所有上传文件的命令都无法使用,所以只能使用U盘来上传。
1、从其他服务器拷贝一份libz.so.1.2.3文件存至U盘,然后将U盘插到进入单用户的补救服务器上。
2、查看U盘的分区名
# fdisk -l
可以看到U盘的分区名是/dev/sdc1,所以挂载/dev/sdc1
3、新建挂载目录,并挂载U盘
# mkdir /upan
# mount /dev/sdc1 /upan/
4、查看U盘文件
# cd /upan/
# ls
5、将libz.so.1.2.3拷贝至/lib64/
# cp ./libz.so.1.2.3 /lib64/
6、将libz.so.1.2.3链接为libz.so.1(因为在之前使用rpm报错是:cannot open libz.so.1,其实libz.so.1是libz.so.1.2.3的链接文件,正真缺失的是源文件libz.so.1.2.3)
# ln -s /lib64/libz.so.1.2.3 /lib64/libz.so.1
7、此时要恢复的内容已完成,现在卸载并拔出U盘
# cd / (必须先退回到根目录下,再执行umount命令,不然会报错提示U盘在使用,无法卸载)
# umount /dev/sdc1
8、重启服务器
# reboot
9、测试 rpm 、ssh均可使用,整个修复过程结束。
误操作 rpm -e --nodeps zlib的更多相关文章
- MySQL误操作后如何快速恢复数据
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...
- Oracle数据库常见的误操作恢复方法(上)
实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 概要: 1.误操作drop了emp表 2.误操作delete了emp表 3.误操作delete了emp表的部分 ...
- git代码库误操作还原记录
先做一些前情提要: 我们项目使用git作为代码管理,同时为了操作更方便,安装了乌龟git(tortoiseGit)工具.以下几乎所有操作都是在乌龟git上进行. 我们的项目是分阶段完成的,在完成上一阶 ...
- ApexSQL Log-SQL误操作恢复工具
今天不小心对数据库执行了一次误操作,心想有没有什么工具能恢复这次误操作呢?于是找到了Log Explorer 4.2,可惜它最多只支持SQL 2005,在SQL 2008上无法使用,然后又找到了Ape ...
- 背景:表A数据误操作,被delete了,恢复。
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD') select ...
- oracle 如何查询过去某个时间点的记录(应用于某个时间点的误操作,回滚到之前的操作)
这个功能是在自己误操作,将某些数据更改错了,你想恢复更改错之前的数据,这个时候你可以使用这种方式 不过建议要小心更改数据,如果实在有必要去更新,请先备份数据表,不到万不得以才可以这么做. SE ...
- 防止用户误操作退出APP的处理
/** * 软件退出的处理:先跳到第一个页面,再点提示“再点一次退出”,2秒内再点一次退出 * 防止用户误操作 */ private boolean isExist=false; private Ha ...
- MySQL【Update误操作】回滚(转)
前言: 继上一篇MySQL[Delete误操作]回滚之后,现在介绍下Update回滚,操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和bi ...
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份(转)
问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题. 遇到这 ...
随机推荐
- Nginx下部署TP5项目
标签(空格分隔): linux nginx配置文件: server { listen 81; #listen [::]:80; server_name _; index index.html inde ...
- .NET简谈——跨进高级编程门槛的必经之路
我们继续C#基础知识的学习,这篇文章对前面基础知识学习的朋友有着举足轻重的作用:为了延续基础知识学习的热情,我编写了这篇特殊的文章. 本篇文章的中心是想借“.NET简谈反射(动态调用)”一文继续发挥下 ...
- 函数式JS: 原来promise是这样的monad
转载请注明出处: http://hai.li/2017/03/27/prom... 背景 上篇文章 函数式JS: 一种continuation monad推导 得到了一个类似promise的链式调用, ...
- Passpoint R1
Passpoint R1 自从 Android 6.0 支持从网络下载包含配置文件和凭据信息的特殊文件来配置 Passpoint R1(第 1 版)凭据,Android 就一直支持 Passpoint ...
- MySQL服务正在启动或停止中,请稍候片刻后再试一次【解决方案】
相信有些小伙伴在使用数据库的过程中会经常频繁的启动和停止MySQL服务,有时候会出现“服务正在启动或停止中,请稍候片刻后再试一次.”这样的提示,如下图所示. 于是乎想办法去解决这个问题,但是发现连强制 ...
- 共用体 union
共用体是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型. union one4all { int int_val; double double_val; long long_val ...
- 一个icon的选中与不选中
页面的样式展示 1.页面中选中的状态 2.页面中未选中的状态 3.俩个icon代表的状态 页面的布局展示 <label> <i class="iconfont icon-d ...
- ng-show ng-hide ng-if的区别
用途 ng-show ng-hide ng-if三个都可以用来控制页面DOM元素的显示与隐藏. ng-hide条件为true时,隐藏所在元素,false时显示所在元素. ng-show相反,条件为tr ...
- 发工资了T_T
和哈比一起吃的四人餐 望京很好很和谐
- CF732F Tourist Reform(边双联通)
题意 在一张有向图中,设 ri 为从点 i 出发能够到达的点的数量. 定义有向图的“改良值”为 ri 的最小值. 现给出一张无向图,要求给每条边定一个方向,使产生的有向图“改良值”最大. 输出 最大改 ...