客户有一台应用虚拟机linux(基于centos7)总是出现down机,导致业务web出现502
拉起思路:
1 查询业务进程在 输出running 业务进程不再,配置自动拉起命令(脚本中)结合定时任务crond
#!/bin/bash
#This is a shell for repair this application imedidately!
#
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "---------------------------------------------------------------------------"
echo "----- start raise this application on ${time} ----"
result=`ps -ef | grep java | grep noob`
#
if [ -z "$result" ]
then
echo "The java ps is down"
docker stop noobing-gateway
docker rm noobing-gateway
docker run --net=host -v /log:/var/log/app/noobing:rw -d -ti --name=noobing-gateway -p 9999:9999 swr.cn-south-1.myhuaweicloud.com/jax-docker/noobing-gateway:v1.1
else
echo "The java ps is running"
fi
echo "--- end raise this application logs on ${time} -----"
##注释:
`ps -ef | grep java | grep noob` `命令`执行结果作为result的赋值
if -z 字符串为空返回真,否则为假
即结果输出为空的时候为真,执行then后的命令 拉起noobing-gateway进程
docker run
--net=host 容器网络设置,仅主机
-v 给容器挂载存储卷,挂载到容器的某个目录 主机的/log目录映射到 容器的/var/log/app/noobing目录
-d 在后台运行
-ti 交互式启动
-name 指定容器名字
-p 9999:9999将主机的9999端口映射到容器的9999端口
-z字符串返回非空,为假
直接echo