shell监控服务器端口加web飞信报警

简介:

#!/bin/sh

#################################################
# check remote os service
#
#
# date:2010-02-26
##################################################

export LANG=en_US.UTF-8
###########################################
# check pid 
#
############################################
MY_PID='/tmp/check.pid'
#妫€鏌id鏂囦欢鏄惁瀛樺湪
if [ -f "$MY_PID" ]
then
#pid鏂囦欢瀛樺湪
PID_NUM=$(cat /tmp/check.pid)
CHECK_PID=$(ps aux | grep $PID_NUM | grep -v grep)
#妫€鏌ヨ繖涓猵id杩涚▼鏄惁瀛樺湪
if [ "$CHECK_PID" != "" ]
then
exit 0
fi
fi

#鐢熸垚绋嬪簭鑷繁鐨刾id,骞朵繚瀛?
#$$鎸囩殑鏄綋鍓嶇▼搴廝ID
echo $$ > $MY_PID

##################################################################################

ROOT_DIR='/root/monitor'
#IPADDR_ARRAY=("http://www.pk.com" "http://news.pk.com/shtml/20100401/864541.shtml" "http://down.pk.com/xiazai/6661.shtml" "http://xin.1.html" "http://act.2pk.com/spe/10/wow/5years/")
IPADDR_ARRAY=("www.51112pk.com" "p2p.inbel.com")
IPADDR_ARRAY_LEN=${#IPADDR_ARRAY[@]}
#SERVICE_PORT='80'

CHECK_LOG_DIR="$ROOT_DIR/check_log"
COUNT_LOG_DIR="$ROOT_DIR/count_log"

#####################################
#check directory and count file
#
#####################################
if [ ! -d "$CHECK_LOG_DIR" ]
then
mkdir -p $CHECK_LOG_DIR
fi

if [ ! -d "$COUNT_LOG_DIR" ]
then
mkdir -p $COUNT_LOG_DIR
fi

i=0
while [ $i -lt $IPADDR_ARRAY_LEN ]
do
IPADDR=${IPADDR_ARRAY[$i]}
CHECK_LOG_FILE="$CHECK_LOG_DIR/$IPADDR.log"
COUNT_LOG_FILE="$COUNT_LOG_DIR/$IPADDR.txt"
WEB_MESSAGE_FAILED="$IPADDR--is-not-running"
WEB_MESSAGE_SUCCESS="$IPADDR--is-up-and-runing-fine"

if [ ! -s "$COUNT_LOG_FILE" ]
then
echo 0 > $COUNT_LOG_FILE
fi


COUNT_FILE_NUMBER=$(cat $COUNT_LOG_FILE)
echo | curl -I $IPADDR > $CHECK_LOG_FILE
#grep "404" $CHECK_LOG_FILE > /dev/null
HTTP_STATUS=$(head -n 1 $CHECK_LOG_FILE | awk '{print $2}')
if [ "$HTTP_STATUS" = "200" ]
then
if [ "$COUNT_FILE_NUMBER" = "3" ]
then
curl "http://sms.api.bz/fetion.php?username=159555555&password=254605sxz&sendto=1595333333&message=$WEB_MESSAGE_SUCCESS"
echo 0 > $COUNT_LOG_FILE
fi
else
case $COUNT_FILE_NUMBER in
0)
echo 1 > $COUNT_LOG_FILE
curl "http://sms.api.bz/fetion.php?username=159522222&password=254605sxz&sendto=1595555557&message=$WEB_MESSAGE_FAILED"
;;
1)
echo 2 > $COUNT_LOG_FILE
curl "http://sms.api.bz/fetion.php?username=1592222&password=254605sxz&sendto=15911111&message=$WEB_MESSAGE_FAILED"
;;
2)
echo 3 > $COUNT_LOG_FILE
curl "http://sms.api.bz/fetion.php?username=15952222&password=254605sxz&sendto=159111111&message=$WEB_MESSAGE_FAILED"
;;
*)
;;
esac
fi

let i++
done

##################################################################
rm -rf $MY_PID


根据自己的需要可以变化修改这个脚本检测服务器端口存活报警
 '


本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/456605


相关文章
|
18天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
102 1
|
1月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
26 0
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
163 0
|
28天前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
40 1
|
25天前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
39 0
|
7天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
137 0
|
7天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
124 0
|
11天前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
108 0
|
16天前
|
弹性计算 Shell 应用服务中间件
ecs服务器shell常用脚本练习(四)
【4月更文挑战第4天】shell代码训练(四)
96 0
|
28天前
|
网络协议 安全 Shell
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
33 0

热门文章

最新文章