#! /bin/bash
#ret=摄像头在线监测,0为在线,1为不在线。
#net=网络监测,0为不通,1为通。
#自动检测摄像头是否在线并重连,如果摄像头在线且网络通畅且FFmpeg没启,则启动;如果(摄像头不在线或网络不通)且FFmpeg启了,则关掉。
for((i=2;$i<=31;i++))
do
if (( ($i >= 9 && $i <= 12) || $i == 22 ))
then
echo "192.168.0.$i is not camera IP"
else
ret=`ping -w 1 -c 2 192.168.0.$i | grep '0 received' | wc -l`
containerName=ffmpeg$i
exist=`docker inspect --format '{{.State.Running}}' ${containerName}`
net=`echo ""|timeout --signal=9 1 telnet $ip 12005 2>/dev/null|grep "\^]"|wc -l`
if [[ $net -eq 1 && $ret -eq 0 && "${exist}" = "false" ]];then
docker start ffmpeg$i
elif [[ ($net -ne 1 || $ret -ne 0) && "${exist}" = "true" ]];then
docker stop ffmpeg$i
fi
fi
done