当你在腾讯云遇到 /lib64/libcrypto.so.10...short该怎么办

http://www.manongjc.com/detail/56-hncyqmqnniysaor.html

今天某开发人员找到我说,腾讯云某某某跳板机远程连接不上啦,赶紧给看看.....影响项目进度啦

好家伙,又把服务器搞挂了,ping ,telnet....先招呼一通,果然22端口挂掉了。。。检查了下安全组没啥问题

问题机器系统CentOS7.6,通过腾讯云VNC后台登录上去服务器,这里说明下原理,VNC相当于通过console方式连接到云主机,不依赖于网络。当咱们云服务被各种“不可抗力”因素导致网络不通或者sshd挂掉的情况下可以通过VNC的方法进行登录。

腾讯云主机VNC登录入口

首先netstat -anltp|grep 22看看端口情况,emmm...空白一片。

接下来咱们重启下sshd服务:

systemctl restart sshd.service

果然没有那么简单哈,报错了,咱们查看一下sshd状态看看具体是啥报错

systemctl status sshd.service

查看sshd状态

以上一堆东西比较有用的是这一句:

error while loading shared libraries: /lib64/libcryto.so.10: .... short

什么意思呢?意思是哎呀,sshd服务重启失败了,原因是载入库文件时失败,太短了。。。短。说白了,损坏了

OK ,咱们接着看

ls -l /lib64/libcrypto.so

/lib64/libcrypto.so库文件

原来是做了软链接到了/lib64/libcrypto.so.1.0.2k下

 ls -l libcrypto.so.1.0.2k

libcrypto.so.1.0.2k损坏

果然,libcrypto.so.1.0.2k损坏了,咱们找个健康的机器看看正常的文件有多大.

正常libcrypto.so.1.0.2k大小是2.5M

诊断完毕:/lib64/libcrypto.so.1.0.2k文件损坏

修复此文件有2种方法:

1、使用CentOS 7.6系统镜像进行修复

2、从健康机器上直接复制过去修复

但是这里是腾讯云,第一种方法行不通,且费时费力,面对项目进度压力果断选择第二种方法;

但是问题又来了,咱们应该怎么复制呢?作为一个传统运维,首先想到的肯定是scp,ftp.....各种文件传输方法,再不行就搭个web服务器wget / curl下载下来,还有牛逼的开发运维直接就python搭建简易文件服务器。但是很遗憾,/lib64/libcrypto.so.1.0.2k->/lib64/libcryto.so.10在系统内地位非常搞,咱们常用的工具都依赖于这个文件,这就导致咱们目前能想到的命令都被封死了,包括yum命令。且腾讯云VNC后台智能执行命令输入输出,无法进行文件传输,这可怎么办呢?

咱们修复归修复,总不能影响开发人员工作,先把这台跳板机的公网ip转移到另外的服务器先让开发用起来:

登录到腾讯云CVM控制台 -> 找到相应的服务器 -> 公网ip -> 转为弹性公网ip -> 转到弹性公网ip控制台找到该公网ip
-> 解绑 ->绑定到该集群下另外一台服务器充当临时跳板机

公网ip转换为弹性公网ip

传统的办法不行,咱们就发挥脑洞,创建一块云硬盘。

创建云硬盘 挂载云硬盘

云硬盘目前是白菜价,按量计费一小时才1分钱,容量无所谓嘛,反正咱们文件只有2.5MB,硬盘名随意填就好啦,提交创建。

创建好后咱们把该云硬盘挂载到另外一台健康的CentOS 7.6的云主机上,挂载好后咱们通过ssh 或者VNC的方式连接上去

 fdisk -l

看一下新挂载的硬盘分区是什么分区路径

fdisk -l查看分区信息

格式化化分区:(注意下面的命令千万不要写错了,写成vda你就凉凉了)

mkfs.ext4 /dev/vdb

格式化分区为ext4

创建一个临时路径

mkdir -p /mnt/tmp

挂载硬盘到该临时路径

mount /dev/vdb /mnt/tmp

复制健康的libcrypto.so.1.0.2k到云硬盘

cp /lib64/libcrypto.so.1.0.2k /mnt/tmp

ls -l /mnt/tmp检查一下,确保libcrypto.so.1.0.2k大小是2.5M无误

OK,万事俱备,只欠东风,咱们把云硬盘解挂载后再挂载到问题机器上

umount /mnt/tmp

然后到腾讯云硬盘控制台进行解挂载

卸载云硬盘

然后重新挂载到问题机器上,重复刚刚挂载的动作:

mkdir -p /mnt/tmp 
mount /dev/vdb /mnt/tmp

接下来咱们进行文件恢复:

cp /mnt/tmp/libcrypto.so.1.0.2k /lib64

检查一下:

ls -lh /lib64/libcrypto.so.1.0.2k

/lib64/libcrypto.so.1.0.2k

OK,确认没问题了,咱们重启sshd

systemctl restart sshd.service

重启sshd

ssh连接没问题了,netstat 观察端口22也起来了,完美修复。解挂载和释放掉刚刚的临时云硬盘,修复成本0.01元(手快网络好的同学可以做到0元)。把弹性公网ip切换回这台机器丢回去给研发狠狠骂一顿,收工。。

啰啰嗦嗦说了这么多,其实想传达给大家一个思路,在云上当传统运维工具scp ,ftp, web server甚至yum命令都失效的情况下,咱们可以通过云硬盘的方式来往虚拟机传输文件,以完成修复工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值