早上来公司,一个同事反馈有一台服务器上的几个网站打不开了。我感觉应该是宝塔里的服务停止了哦,于是登录进去看了下服务器,服务器正常;然后登录宝塔,居然登录不了,我输入了正确的账号和密码,显示登录成功就是不跳转呢?
非常奇怪,于是开始分析原因,一个个排查,分享下我的步骤吧。
1、重启下宝塔
SSH里输入bt,然后输入1,发现问题依旧存在呢,很明显不是这个问题。
2、修复宝塔
SSH里输入bt,然后输入16,然后开始修复,然后发现根本修复不了,报错一大堆的error,这里就不截图了(因为忘记截图了,尴尬)。
3、更新宝塔
我们用官方提供的更新宝塔的命令:
wget -O update.sh http://download.bt.cn/install/update.sh && sh update.sh
发现还是不行哦。更新不了,提示失败。这个时候纳闷了啊,平时一般排查到这里,问题基本解决了。于是我查了下报错的一些细节,怀疑是磁盘满了?
4、排查服务器磁盘
排查磁盘是否满了,我们可以如下命令:
df -h
执行后,吓我一跳啊,果然是/dev/mapper/centos-root 这个已经到100%了,
难怪我操作那么多步骤,都是失败的。既然问题找到了,这个时候,我们就需要怎么清理下磁盘了。
对于非专业的服务器维护人员来说,平时解决磁盘问题,都是进入宝塔直接清理,但是现在进入不了宝塔呢?所以我们只能通过ssh里输入linux命令去弄啦,往下看吧。GO!
首先我们要进入到这个磁盘里去看下什么文件最大,然后看情况删掉它就可以了。使用 du -h -x --max-depth=1 查看哪个目录占用过高,对于过高目录中的内容适当删减腾出一些空间,执行下命令:
cd /dev/mapper
du -h -x --max-depth=1
然后发现什么也没有啊,都很小,奇怪呢?这个时候不要慌,我们继续进行下一步。
5、查看是否还有文件被删除而进程还活着造成占用空间的现象
若发现空间被占满,就还有这种方式可以查看是否是系统文件删除后还存在进程活着的情况,解决方式就是:
使用lsof | grep delete语句查看对应进程号;
lsof | grep delete
执行后看结果:
吓我一跳,还有这些删除后还在的进程,占用了太多的空间了。
使用kill -9 进程号,杀掉对应进程即可。然后再使用命令df -h去看,发现磁盘正常了。
这个时候,我再去登录宝塔,发现没啥问题啦。进入宝塔后,把没启动的服务都启动下,网站就正常了。
总结
对于这个问题,也是够折腾了,因为我不是一名专业的服务器维护人员,有些知识点还不能熟悉,现学现用。希望本次分享能够帮助到大家吧,有问题随时留言或者加QQ群私聊。
网友评论文明上网理性发言 已有0人参与
发表评论: