服务监测
#!/bin/bash
if [ -z $1 ];then
echo "错误:未输入服务名称."
echo "用法:脚本名 服务器名称."
exit
fi
if systemctl is-active $1 &>/dev/null ;then
echo "$1已经启动..."
else
echo "$1未启动..."
fi
if systemctl is-enabled $1 &>/dev/null ;then
echo "$1是开机自启动项."
else
echo "$1不是开机自启动项."
fi
运行结果
发送邮件
HTTP服务监测
#!/bin/bash
#功能描述(Description):使用curl访问具体的HTTP页面,检测HTTP状态码
#curl命令选项说明:
#-m设置超时时间
#-s设置静默连接
#-o下载数据另存为
#-w返回附加信息,HTTP状态码
url=http://192.168.4.5/index.html
date=$(date +"%Y-%m-%d %H:%M:%S")
status_code=$(curl -m 3 -s -o /dev/null -w %{http_code} $url)
mail_to="root@localhost"
mail_subject="http_warning"
#使用<<-重定向可以忽略tab键缩进的内容,代码可读性更好.
if [ $status_code -ne 200 ];then
mail -s $mail_subject $mail_to <<- EOF
检测时间为:$date
$url页面异常,服务器返回状态码:${status_code}.
请尽快排查异常.
EOF
else
cat >> /var/log/http_check.log <<- EOF
$date "$url 页面访问正常."
EOF
fi
发送邮件
根据Hash值监测网站
#!/bin/bash
#功能描述(Description):根据数据的HASH值监控网站数据是否被篡改.
url="http://192.168.4.5/index.html"
date=$(date +"%Y-%m-%d %H:%M:%S")
#定义变量并赋值为源数据的HASH值.
source_hash="e3eb0a1df437f3f97a64aca5952c8ea0"
#实时检测网页数据的HASH值
url_hash=$(curl -s $url |md5sum | cut -d ' ' -f1)
if [ "$url_hash" != "$source_hash" ];then
mail -s http_Warning root@localhost <<- EOF
检测时间为:$date
数据完整性校验失败,$url,页面数据被篡改.
请尽快排查异常.
EOF
else
cat >> /var/log/http_check.log <<- EOF
$date "$url,数据完整性校验正常."
EOF
fi
发送邮件
使用nmap监控HTTP
#!/bin/bash
#功能描述(Description):使用nmap的端口扫描功能监控HTTP端口
ip=192.168.4.254
mail_to=root@localhost
nmap -n -sS -p80 192.168.4.254 | grep -q "^80/tcp open"
if [ $? -eq 0 ];then
echo "http service is running on $ip" | mail -s http_status_OK $mail_to
else
echo "http service is stoped on $ip" | mail -s http_status_error $mail_to
fi
安装环境
发送邮件
网络连接监测
#!/bin/bash
if [ -z "$1" ];then
echo -n "用法: 脚本 "
echo -e "\033[32m域名或IP\033[0m"
exit
fi
#-c(设置ping的次数),-i(设置ping的间隔描述),-W(设置超时时间)
ping -c2 -i0.1 -W1 "$1" &>/dev/null
if [ $? -eq 0 ];then
echo "$1 is up"
else
echo "$1 is down"
fi
运行结果