标题:[实践OK]当一台服务器被yum删除grep的rpm包导致mount grep cp因为openssl-libs和krb5-libs被不小心yum remove掉后的恢复办法。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Mon, 12 Mar 2018 12:01:52 +0000 作者:jackxiang 地址:https://jackxiang.com/post/9668/ 内容: 背景:突然一台阿里云玩的低配机器的SSHD服务因缺少openssl-libs和krb5-libs两RPM包无法连接了,建议您使用管理控制台登陆远程,查看一下是否资源满了。 原因:是我自己升级CentOS7.4作yum update时不小心把 grep 的RPM包删除了,导致openssl-libs和krb5-libs被不小心yum remove掉了,引起了SSDH服务挂掉,wget和curl以及mount挂载都丢了,现在我修好了,关单了,如下操作: 提了个单说用非SecureCRT的网页终端连接,试了一下果然,这个是串口连接的或是Lio。对于yum instal,yum localinstall 都无法用(libcrypto.so.10 找不到,也就是rpm -qf /usr/lib64/libcrypto.so.10 openssl-libs-1.0.2k-8.el7.x86_64包被卸载了导致的),而yum localinstall也不可用,Wget和Scp也都无法用,最后,还好有nc,采用了nc侦听端口,进而传RPM,然后,通过rpm2cpio xx.rpm|cpio -div解压后把,缺少的so全mv到原来rpm安装的位置,救活了系统的sshd和yum install,说明这两个包太TM重要了不要删除,且在卸载rpm包时,特别是依赖这两个包有可能一并卸载时一定要睁大眼睛注意。 rpm -e grep-2.20-3.el7 rpm -e grep-2.20-3.el7 --noscripts 为依赖而移除: coreutils x86_64 8.22-18.el7 @base 14 M krb5-libs x86_64 1.15.1-8.el7 installed 1.9 M openssl-libs x86_64 1:1.0.2k-8.el7 @base 3.1 M 导致了,sshd,wget,curl,mount全给坍塌了,连接不上服务器了都。 yum remove grep 正在解决依赖关系 --> 正在检查事务 ---> 软件包 grep.x86_64.0.2.20-3.el7 将被 删除 --> 正在处理依赖关系 grep,它被软件包 krb5-libs-1.15.1-8.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 krb5-libs.x86_64.0.1.15.1-8.el7 将被 删除 --> 正在处理依赖关系 libgssapi_krb5.so.2()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 --> 正在处理依赖关系 libk5crypto.so.3()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 --> 正在处理依赖关系 libk5crypto.so.3(k5crypto_3_MIT)(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 --> 正在处理依赖关系 libkrb5.so.3()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 --> 正在处理依赖关系 libkrb5.so.3(krb5_3_MIT)(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 openssl-libs.x86_64.1.1.0.2k-8.el7 将被 删除 --> 正在处理依赖关系 libcrypto.so.10()(64bit),它被软件包 coreutils-8.22-18.el7.x86_64 需要 --> 正在处理依赖关系 libcrypto.so.10(libcrypto.so.10)(64bit),它被软件包 coreutils-8.22-18.el7.x86_64 需要 --> 正在检查事务 ---> 软件包 coreutils.x86_64.0.8.22-18.el7 将被 删除 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================================ Package 架构 版本 源 大小 ============================================================================================================================ 正在删除: grep x86_64 2.20-3.el7 @base 1.1 M 为依赖而移除: coreutils x86_64 8.22-18.el7 @base 14 M krb5-libs x86_64 1.15.1-8.el7 installed 1.9 M openssl-libs x86_64 1:1.0.2k-8.el7 @base 3.1 M 事务概要 ============================================================================================================================ 移除 1 软件包 (+3 依赖软件包) 1)正在处理依赖关系 grep,它被软件包 krb5-libs-1.15.1-8.el7.x86_64 需要: rpm -q krb5-libs --requires|grep grep grep 2)libgssapi_krb5.so.2()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要 #rpm -q openssl-libs --requires|grep krb5 libgssapi_krb5.so.2()(64bit) libkrb5.so.3()(64bit) libkrb5.so.3(krb5_3_MIT)(64bit) SO来自krb5-libs-1.15.1-8.el7.x86_64.rpm。 3)libcrypto.so.10()(64bit),它被软件包 coreutils-8.22-18.el7.x86_64 需要: #rpm -q coreutils --requires|grep libcrypto libcrypto.so.10()(64bit) libcrypto.so.10(libcrypto.so.10)(64bit) 用到yumdownloader和rpm2cpio解压rpm包到目录的cpio -div: yumdownloader krb5-libs-1.15.1-8.el7.x86_64 #krb5-libs-1.15.1-8.el7.x86_64.rpm nc 101.200.228.13* 4444 < /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm nc -l 4444 > /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm rpm2cpio openssl-libs-1.0.2k-8.el7.x86_64.rpm | cpio -div 用到nc重定向后还用到挪动命令mv:mv usr/lib64/* /usr/lib64 #发现用cp都不行,额的个神。 #rpm -ql openssl-libs-1.0.2k-8.el7 #查看rpm包里有哪些文件 /usr/lib64/libssl.so.10 /usr/lib64/libcrypto.so.10 服务器有一个叫iLO远程管理的东西,阿里云的这个应该也是类似的,即使SSHD进程挂了用SecureCRT的SSH连接不上了,可以通过管理控制台登陆远程操作服务器,应该是基于Websocket做的,救急是很有用的,就像这次就是一个活生生的例子: 工程师 64515 号 : 您好,我们根据您的问题情况检查进度如下: [ 问题现象 ] 无法连接远程 [ 问题实例 ] [ 处理意见 ] 您好,建议您使用管理控制台登陆远程,查看一下是否资源满了。 阿里云售后提示您: 对于涉及到文件操作,磁盘扩容,磁盘重置,磁盘更换,配置调整等操作,建议您先通过控制台手动创建快照,以免误操作带来的数据丢失风险。 Generated by Jackxiang's Bo-blog 2.1.1 Release