shell監控服務程序是否啟動
#!/bin/bash/ i=3 servicePids=$(docker ps -a|awk '{print $12}'|grep -v 'ago') rows=$(awk 'END{print NR}' docker-compose.yml) rows=$((rows)) echo "rows:"$rows while [ "$i" -le "$rows" ] do echo "rows:"$rows j=$((i+3)) newName=“” serviceName=$(awk -F ':' 'NR=='"$i"' {print $1}' docker-compose.yml) portNum=$(awk -F ':|"' 'NR=='"$j"' {print $2}' docker-compose.yml) echo "portNum:"$portNum if [ "$serviceName" != "" ] then
lastchar=${serviceName:(-1)}
if [ -z "$(echo $lastchar|sed 's#[0-9]##g')" ] then newName=${serviceName%?}$portNum elif [ "$lastchar" != "" ] then newName=${serviceName}$portNum fi k=0 for pid in ${servicePids[@])} do id=${pid:(-4)} if [ "$id" == "$portNum" ] then k=1
fi done if [ "$k" == 0 -a "$portNum" != "" ] then echo $serviceName docker-compose -f docker-compose.yml restart $serviceName fi fi i=$((i+17)) done