MENU

弄崩了博客服务器

2019 年 11 月 01 日 • 东拉西扯

主要是这个分类好久没新增过文章了,所以扯扯皮,最近本站服务器快到期了,之前直接续的一年,所以去腾讯云续费,顺便看一下腾讯云的活动页面,临近双11活动一堆,还有一些别的,翻到了一个799能买3年的,配置还是最低配的1CPU/1GB,这个貌似不错,于是我就下单了,下单后发现网络带宽只能用固定的,无法转到按量付费,因为和现在的服务器是在不同可用区,决定旧服务器不要了我需要把我的备份和一些必需文件推过来,统计了一下大概有10G左右,还有就是每天我都会向七牛云阿里云推点东西,都需要走公网,总之我对网络依赖特别大,如果改成固定带宽玩不起,太贵了,这1M带宽我没法玩,所以我选择退款。

然后决定不新买了,还是继续用这个吧,退了之后我以为钱会原路退回,结果是退到了腾讯云账户余额,我也没注意,我想等钱原路退后会直接续费吧,然后这个空档期我连到了本站服务器,貌似好久都没管了,好多东西都该更新了,看了一下系统版本还是7.4.1708的,上次更新貌似就是刚买这个服务器的时候,然后再就没管过。

再就是本站的运行环境nginx-1.15.10/mysql-5.7.247/php-7.2.12,是时候该更新一波了,因为我是用docker跑的这三个东西,所以我只需要更新镜像就行了,数据库我并没有动,还是之前的版本,nginx升级到了1.16.1php升级到了7.3.11,这个过程还算是比较顺利,测试没问题之后都是秒升级。

然后我就开始作了,我准备跑一波yum -y update,将系统彻底的更新一下,目前系统最新版本都是7.7.1908了,看了一下影响除了在更新docker-ce的时候本站访问会出点问题,应该很快就会恢复,所以没什么可操心了的,我直接就开跑了,yum下载完所有软件更新包之后事务测试通过就开始安装了,但是安装到一半的时候就卡死了,对,卡死不动了,紧接着我访问了一下我的博客,响应特别慢,然后直接503了,监控那块也检测到了,收到了邮件。

结果等了10几分钟还是之前的那种状态,服务器卡死不动,我想新开窗口连接都已经连接不上了,然后又等了一会,因为现在软件包是处于安装状态,卡死的时候安装的是哪个软件包我忘了,我也不敢贸然给他停掉,我怕系统出问题了,最后我没什么耐心了,开始疯狂Ctrl+C,但是没什么卵用,我只能去腾讯云后台重启服务器了,结果重启也用了好长时间,应该是正常关机关不掉了,等了一会终于是关掉了。

之后系统正常启动,本站也恢复正常访问,然后我连到了服务器看了一下,貌似一切正常,所以不打算更新系统了,就这样吧,然后我用rpm -qa|wc -l看一下当前系统有多少软件包,结果返回了一个0,我有点晕,我又试着查了一下docker-ce都安装了哪些文件,结果提示我docker-ce没有安装,这我就有点无法理解了。

这次玩大了,估计是系统出问题了,又试了一下yum,也不能用了,刚开始以为是源出问题了,结果我换了N个源还是一样,然后就回家了,日后再说,总之博客访问没有受到影响就可以了。

第二天开始解决这个问题,参考了这篇文章尝试解决,我这时候才发现,系统版本从之前的7.4.1708蹦到了7.7.1908,下载安装7.7.1908yum包是这种效果,提示我缺少依赖,看来损坏的不止是rpm/yum软件包了,连特么一些lib库都没了

然后尝试重装yum,下载yum所有的依赖包安装了一下,但还是没什么卵用,我感觉就算吧yum弄好了,后期也有一堆问题,毕竟系统里安装了哪些软件包都查不到,最新安装的包倒是能查到了。

所以我放弃了一名作为运维工程师的职责,放弃抢救,准备去新买服务器了,哈哈,因为如果重装的话博客就无法访问了,要么就临时迁到我别的服务器上,重装完之后再迁回来,最终决定还是新买一个吧。

在活动的北京五区买了一个1H2G的,一年比现在要续费的这个还便宜了,用了代金券花了500块,买完之后先跑了一遍yum update后安装所需的东西,迁博客几分钟就搞定了,迁完博客之后我去改DNS解析,解析改完了半个多小时了有些请求还是发到了那个有问题的服务器上,搞得跟负载均衡一样。

一些备份和必需文件也走是公网传过来的,没办法,毕竟和之前的服务器不在同一个可用区,这些文件里备份文件删了很多,最后只剩下4G左右了,很快就传完了,至于那个老服务器有时间再抢救一下吧,距离到期还有几天。

so,no zuo no die

然后时间来到了今天,准备开始抢救,再不抢救就没机会了,明天就要到期了,我想的办法就是重装全部的rpm包,我只需要重新安装系统必需的rpm就可以了,类似是重装系统了,但系统必需软件包有哪些,我也不知道,所以我在本地服务器上新装了一个centos系统,将系统更新到了最新版本,也就是7.7.1908,最小化安装,据我了解腾讯云服务器centos系统也是最小化安装的,其实最好还是参照腾讯云官方的镜像来弄,之前新买的服务器已经安装了N多包了,所以就不以那个为参考了。

之后我查了一下新装服务器上有哪些软件包,这些都是系统安装完之后就有的包,我只是跑了一下yum update,并没有新装别的包,只是将系统更新到了最新,一共304个包,这些包都是在系统镜像中能找到的。

[root@localhost ~]# rpm -qa > rpm
[root@localhost ~]# cat rpm |wc -l
304
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@localhost ~]# uname -r
3.10.0-1062.4.1.el7.x86_64

拿到这个列表之后我要做的就是在有问题的服务器上安装这些rpm包,先把这个文件传到有问题的服务器上,

[root@localhost ~]# scp -P24680 rpm rj-bai@123.206.8.94:/home/rj-bai/

拿到这个文件后开始安装rpm包,用阿里云的地址,直接强制安装

[root@rj-bai ~]# mkdir rpm
[root@rj-bai ~]# mv /home/rj-bai/rpm rpm/
[root@rj-bai ~]# cd rpm/
[root@rj-bai ~/rpm]# for i in `cat rpm`
> do 
>  rpm -Uvh https://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/Packages/$i.rpm --nodeps --force
> done

这算是死马当活马医了,在安装的时候发现有些还是404,这我就有点无法理解了,我只好把404的软件包找了出来,

我在阿里云的镜像站翻了一下,貌似是版本号不对,这是为毛,都是7.7.1908的系统有些软件包的版本居然不一样,无法理解,测试了一下yum可以用了,我只用yum去装这些包了,不过我得把版本号给他去掉,这特么貌似没什么规律可循,只能手动去删了,删完之后安装,全部正常安装了,然后我重启了服务器,系统能不能启动就看造化了,顺便看一下内核版本,和我早晨新装服务器内核版本一致。

[root@rj-bai ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@rj-bai ~]# uname -r
3.10.0-1062.4.1.el7.x86_64

不到一分钟系统重启完了,我尝试重装docker,无法reinstall,所以就算新装了,正在运行的容器有这些,

很快就装完了,重启docker主进程之后再看

嗯,这是被拯救过来了吗?表面上来看系统运行正常,系统日志也没发现什么奇怪的东西,最后统计了一下rpm包的数量为382,明显不对劲,像是什么vim/unzip之类还没有重装,虽然查不到这些软件包,但软件包相对的命令是可以使用的,系统之前还安装了哪些软件包我无从得知,目前能看到的都是新装的,但也只能这样了,没别的办法,就这样吧。

最后编辑于: 2019 年 11 月 04 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码