一、需求说明
互联网上很多网站都是静态网站,尤其是一些公司门户网网站。这些静态网站长期不更新,如果是我们自己的门户网站,我们需要监测静态页面是否未发生改动,如果发生了挂马、入侵等安全事件时常常会修改网站内容,通过监测web站点的页面,比较历史存档记录,发生非正常更新时进行预警。
二、脚本内容
#!/bin/bash
#script name:site_change_track.sh
#author: wuhsh@bigdatayh.com
#version: v1
#description:跟踪检查网站页面是否更新
#参数定义
first_time=0
workdir=$(cd $(dirname $0); pwd)
logdir=$workdir/logs
last=$logdir/$1-last.html
recent=$logdir/$1-recent.html
if [ $# -ge 2 ];then
echo -e "\e[31m $0 此脚本要求一次检查一个网站\n \e[0m"
exit -1
fi
if [ ! -e "$last" ];then
first_time=1
fi
curl --silent $1 -o $recent
if [ $first_time -ne 1 ];then
changes=$(diff $last $recent)
if [ -n "$changes" ];then
echo -e "\e[31m $1 站点最近有更新,更新如下:\n \e[0m"
echo -e "\e[31m $changes \e[0m"
else
echo -e "\e[32m \n $1 站点最近无更新 \e[0m"
fi
else
echo -e "\e[32m 这是第一次检查$1 \e[0m"
fi
cp $recent $last
三、使用示例
1、首次检查站点
(base) [root@s186 test]# ./site_change_track.sh www.changsha.gov.cn
这是第一次检查www.changsha.gov.cn
2、无更新时检查结果展示
(base) [root@s186 test]# ./site_change_track.sh www.changsha.gov.cn
www.changsha.gov.cn 站点最近无更新
3、站点有变动时结果展示
站点有变动时红色字体展示变动内容。
4、一次输入多个站点时
(base) [root@s186 test]# ./site_change_track.sh www.changsha.gov.cn a.test.com
./site_change_track.sh 此脚本要求一次检查一个网站