脚本名称:check_by_port.sh
port=$1
cmd=$2
time=`date +%Y%m%d%H%M`
proc_num=`netstat -ntap | grep $port | grep LISTEN -c`
if [ ${proc_num} -lt 1 ] ; then
echo "can't find running process listenning on port $port"
$cmd &> service.log.$time &
rm -f service.log
ln -s service.log.$time service.log
else
echo "find ${proc_num} running process listenning on port $port"
fi
部署在crontab里,
#check metastore
*/5 * * * * cd /usr/lib/hive/ && sh ./check_by_port.sh 9083 "./bin/hive --service metastore" >> monitor.log 2>&1