Shell脚本监控线上端口服务是否正常开启
前言:
线上服务正常可用是至关重要的,当正在运行的某个端口服务异常停止,我们期望定时脚本可以自动启动,而无需遇到问题再人为的启动。
例如:监听Mysql服务是否正常,我们通常的思路是检查3306端口是否正常启动的方式来监听。
方法:
以Mysql服务,端口3306为例,shell脚本写法为:
#!/bin/bash #监控Mysql服务是否开启 port=`netstat -nlt|grep 3306|wc -l` if [ $port -ne 1 ] then /etc/init.d/mysqld start else echo "MySQL is running" fi
以webSocket服务,端口8820为例,shell脚本写法为:
#!/bin/bash #监控webSocket服务是否开启 port=`netstat -nlt|grep 8820|wc -l` if [ $port -ne 1 ] then $(cd /home/websocket && php start.php start -d) else echo "webSocket is running" fi