起因;
内网机房断电,运行在虚拟机之上的docker 应用还得手动触发重启,实在太费劲,针对此应用场景进行shell 脚本编写;
#/bin/bash
#author lijx
#用于docker 断电启动,Docker 内程序应用脚本
function Start_chehejia_app(){
docker_name=$1
app_name=$2
app_ops_operaiton=$3
abc=$(docker exec -it $docker_name su - work -c "/chj/app/$app_name/bin/console $app_ops_operaiton")
}
function Get_docker_app_name(){
ops_oper=$1
for i in ` docker ps -a |awk '{if ($8=="Up") print $NF}'|grep -v "CONTAINER"|grep -v "^$"`
do
relult=$(docker exec -it $i ls -lrt /chj/app/ |tail -1|awk '{print $9}'|tr -d "\r")
Start_chehejia_app $i $relult $ops_oper
done
}
case "$1" in
start)
echo -e "\033[32m 应用启动 \033[0m"
ops_operation="start"
Get_docker_app_name $ops_operation
$1
;;
stop)
echo -e "\033[32m 应用停止 \033[0m"
ops_operation="stop"
Get_docker_app_name $ops_operation
$1
;;
restart)
echo -e "\033[32m 应用重启 \033[0m"
ops_operation="stop"
Get_docker_app_name $ops_operation
$1
;;
status)
ops_operation="status"
echo -e "\033[32m 检查程序 \033[0m"
Get_docker_app_name $ops_operation
;;
*)
echo -e '\033[31m Docker内部应用管理,请输入 "$"Usage: $0 {status|start|stop|restart}" \033[0m'
exit 2
esac
使用方法;
[root@docker-agent-dev-20180712-02 devops]# sh chj_power_repaoir.sh 以下提示参数如 (status)
Docker内部应用管理,请输入 "$"Usage: $0 {status|start|stop|restart}"
















