linux下莫名其妙的某个服务就挂了,又不能马上找打原因,又不能让它一直挂。 可以尝试一些小而强悍的脚本,做临时的处理。
莫名其妙的某个docker容器就挂了,怎么办呢? 思路:
抛砖引玉的小脚本,欢迎改进:
bash#!/bin/bash
# 加载环境变量
# 获取docker监听的端口的数量
port_num=`netstat -ntlp | grep -cE ":8080|:2222"`
#docker_container_num= `docker ps |wc -l`
echo $port_num
# port_num 的数量为0,则说明服务挂了。
if [ "$port_num" = "0" ]; then
# 则重新启动docker进程
/usr/bin/systemctl restart docker
# 将日志写入日志文件
echo $(date "+%F %H:%M:%S") - already restart port - process not found >> /alidata/logs/monitor/monitor_docker.log
# 如果 80 或 8080 端口有进程在监听
else
echo $(date "+%F %H:%M:%S") - I Am Ok >> /alidata/logs/monitor/monitor_docker.log
# 获取docker容器数量
# 如果返回的字符串不是 1
#if [ "$docker_container_num" = "1" ]; then
# 则重新启动docker进程
# /usr/bin/systemctl restart docker
# 将日志写入日志文件
# echo $(date "+%F %H:%M:%S") - already restart port - process not found >> /alidata/logs/monitor/monitor_docker.log
#fi
fi
本文作者:mykernel
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!