今天某开发人员找到我说,腾讯云某某某跳板机远程连接不上啦,赶紧给看看.....影响项目进度啦
好家伙,又把服务器搞挂了,ping ,telnet....先招呼一通,果然22端口挂掉了。。。检查了下安全组没啥问题
问题机器系统CentOS7.6,通过腾讯云VNC后台登录上去服务器,这里说明下原理,VNC相当于通过console方式连接到云主机,不依赖于网络。当咱们云服务被各种“不可抗力”因素导致网络不通或者sshd挂掉的情况下可以通过VNC的方法进行登录。
首先netstat -anltp|grep 22看看端口情况,emmm...空白一片。
接下来咱们重启下sshd服务:
systemctl restart sshd.service
果然没有那么简单哈,报错了,咱们查看一下sshd状态看看具体是啥报错
systemctl status sshd.service
以上一堆东西比较有用的是这一句:
什么意思呢?意思是哎呀,sshd服务重启失败了,原因是载入库文件时失败,太短了。。。短。说白了,损坏了
OK ,咱们接着看
ls -l /lib64/libcrypto.so
原来是做了软链接到了/lib64/libcrypto.so.1.0.2k下
ls -l libcrypto.so.1.0.2k
果然,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
-> 解绑 ->绑定到该集群下另外一台服务器充当临时跳板机
云硬盘目前是白菜价,按量计费一小时才1分钱,容量无所谓嘛,反正咱们文件只有2.5MB,硬盘名随意填就好啦,提交创建。
创建好后咱们把该云硬盘挂载到另外一台健康的CentOS 7.6的云主机上,挂载好后咱们通过ssh 或者VNC的方式连接上去
fdisk -l
看一下新挂载的硬盘分区是什么分区路径
mkfs.ext4 /dev/vdb
mkdir -p /mnt/tmp
mount /dev/vdb /mnt/tmp
cp /lib64/libcrypto.so.1.0.2k /mnt/tmp
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
OK,确认没问题了,咱们重启sshd
systemctl restart sshd.service
啰啰嗦嗦说了这么多,其实想传达给大家一个思路,在云上当传统运维工具scp ,ftp, web server甚至yum命令都失效的情况下,咱们可以通过云硬盘的方式来往虚拟机传输文件,以完成修复工作。
最后,感谢大家观看,我是你们的朋友Mr.JC,咱们下回见~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。