在运维大量服务器集群中,服务器上有服务会因为各种原因无故退出,需要对服务进行监控,如服务退出需要自动启动,但是Linux中的cron最小级别是分钟级别,显然不满足情况。

下面脚本配合cron可以实现秒级监控启动,并且灵活配置。

#!/bin/bash
i=0
interval=5
count=$[60/$interval]   # $[]Only integer operations
while [ $i -lt $count ]
do
        tomcat_web=`ps -ef|grep tomcat-web|grep -v grep |wc -l`
        if [ ${tomcat_web} == 0 ]; then
                cd ~/tomcat-web/bin/;
                startup.sh >/dev/null   2>&1
                echo "tomcat-web have restart"
        fi
        let i=$i+1
        sleep $interval
done