接到客户问题处理请求,客户现场云平台无法使用。客户说是密码改了,他们不知道。需要我们帮忙处理。
接手任务后,与客户核实问题现象,复现了一下,发现并没有提示密码错误。客户给出的答复是,需要等待一段时间才能出现。
没办法,客户是上帝。我自行着手查了一下后台的资源情况,发现还是容器模式部署的。
检查容器启动情况,数据库启动情况,一切正常。
检查磁盘空间、CPU、内存,发现当前操作系统根目录空间已被占满。
执行find / -type f -size +10G命令查找当前系统过大的文件,发现在:
/var/lib/docker/containers/container_id/xxxx.json
文件有两个超过10G,清除一下。直接执行:
>xxxx.json,清空文件
为了一劳永逸,写了个自动清理脚本:
#!/bin/bash
echo "Start clean logs..............."
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "End clean logs .................."
最后添加crontab中,这里需要注意shell脚本的编译器,不要习惯用#!/bin/sh,需要改为#!/bin/bash。
本方法也是一个治标的办法,要想治本,最好是在创建容器时,先定好日志的保留中期,以免后期修补。