Shell脚本网站监控预警!自动化运维脚本!!!

一、实验背景

网站被恶意篡改、挂马、暗链怎么办?

  • 网站监控预警系统又叫网站预警机,主要功能是针对政府、高校、各大企业网站所研
  • 发的一款对网站安全进行整体的监控系统,监测内容包括:网站挂马监测、漏洞扫描、敏感
  • 信息(文字、图片、链接)、非法链接(暗链)、舆情监测、网站本身性能等进行实时监控。
    实现7*24小时无间断监控,在问题发生第一时间内发现,第一时间内预警;

二、实验要求

  1. 写一个发邮件的shell脚本,通过curl -I 返回状态码来判定所访问的网站是否正常,比如当代码状态200,才算正常。
  2. 再写一个脚本,用来判断是状态是否为200,如果是的就输出正常;
    若不是,就发送邮件

三、实验分析

  1. 关键问题,截取出代码状态
  2. 在写出该shell脚本时,应该先在命令下面使用curl -I http://www.51xit.top/命令测试,然后通过awk截取到状态码
  3. 写发邮件的脚本,用的是sendEmail。生产环境有配套的模板
  4. 判断和发邮件关联

四、实验实践

4.1、发邮件脚本

  1. 我们首先把sendEmail-v1.56.tar.gz压缩包放入opt目录下
sendEmail-v1.56.tar.gz    ##我们首先把**sendEmail-v1.56.tar.gz**压缩包放入**opt**目录下
tar -zxvf /opt/sendEmail-v1.56.tar.gz   ##将压缩包解压tar -zxvf /opt/sendEmail-v1.56.tar.gz 
cp sendEmail-v1.56/sendEmail /usr/local/bin/
chmod 755 /usr/local/bin/sendEmail  ##提权755
  1. 我们先写一个发邮件的脚本,代码如下!
vi /opt/sendEmail.sh
#!/bin/bash
#
# Filename:    SendEmail.sh
# Revision:    1.0
# Date:        2019/05/29
# Author:      Qicheng
# Email:
# Website:     http://51xit.top/
# Description: tang邮件告警脚本
# Notes:       使用sendEmail
#

# 脚本的日志文件
LOGFILE="/tmp/Email.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1

SMTP_server='smtp.qq.com'                               # SMTP服务器,变量值需要自行修改
username='邮箱@qq.com'                         	        # 用户名,变量值需要自行修改
password='邮箱的授权码'                                   # 密码(QQ邮箱用的是授权码),变量值需要自行修改,使用IMAP/SMTP的授权码
from_email_address='邮箱@qq.com'         	            #### 发件人Email地址,变量值需要自行修改
to_email_address="$1"                                   # 收件人Email地址,tang传入的第一个参数
message_subject_utf8="$2"                               # 邮件标题,tang传入的第二个参数
message_body_utf8="$3"                                  # 邮件内容,tang传入的第三个参数

# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"

# 转换邮件内容为GB2312,解决收到邮件内容乱码
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"

# 发送邮件
sendEmail='/usr/local/bin/sendEmail'
set -x
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
  1. 测试脚本
chmod +x /opt/sendEmail.sh          ## 脚本给执行权力
/opt/sendEmail.sh    [email protected]  测试   测试   ##发送邮寄测试脚本

4.2、监控网页状态脚本

#!/bin/bash
DATE=$(date +%Y-%m-%d)  ## 获取当前时间
a=$(curl -I http://www.51xit.top/ | awk -F " " 'NR==1{print $2}')  ## 过滤 状态码 200。这边是用51网当作实验网站
if [ $a -eq 200 ];then
  echo "$a $DATE"
  echo "$a $DATE" &>> up.txt  ## 获取当前的状态码和当前的时间,追加到up.txt
else
  /opt/sendEmail.sh [email protected] 测试 测试 &>> down.txt  ## 如果状态码不是 200 ,就会向这个邮箱发送邮件,达到预警状态!
fi

运行脚本,查看状态码
在这里插入图片描述

五、实验思路回顾

当我们网站出现问题时,或受到攻击时,为了防止这种情况发生,保护公司的资料安全,我们需要使用脚本来实现这些情况。
我们先写一个自动发送邮件的脚本,然后写好之后在写一个判断网站状态码的脚本,如果状态码不对的话,则自动发送邮件给公司,达到预警状态!

猜你喜欢

转载自blog.csdn.net/m0_46563938/article/details/108236313