LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1205|回复: 5

页面更新监控脚本,写了一个,请大家看看有没有更好的实现方式。

[复制链接]
发表于 2007-8-29 11:52:46 | 显示全部楼层 |阅读模式
需求:
监控下面这个页面的最后更新时间,如果此次获得的更新时间和上次获得的更新时间相差在20分钟以上,则发送短信警报,警报中注明服务器ip及警报类型(snapshot)即可。

#!/bin/sh

#START
rm -f n1.htm

wget http://211.157.29.51/snapshotview/n1.htm
if [ "$?" -eq "1" ];then
###Net or server error (短信接口)

exit 1
fi

date >>log
cat n1.htm>>log


YEAR=`cat n1.htm|awk '{print $1}'|awk -F- '{print $1}'`
MONTH=`cat n1.htm|awk '{print $1}'|awk -F- '{print $2}'`
DAY=`cat n1.htm|awk '{print $1}'|awk -F- '{print $3}'`
HOUR=`cat n1.htm|awk '{print $2}'|awk -F: '{print $1}'`
MINUTE=`cat n1.htm|awk '{print $2}'|awk -F: '{print $2}'`
if [ "$MONTH" -lt "10" ];then
        MONTH=0$MONTH
fi

if [ "$DAY" -lt "10" ];then
        DAY=0$DAY
fi

if [ "$HOUR" -lt "10" ];then
        HOUR=0$HOUR
fi
echo $YEAR$MONTH$DAY$HOUR$MINUTE

touch -t $YEAR$MONTH$DAY$HOUR$MINUTE n1.htm
NAME=`find ./ -name n1.htm -and -mmin 20|awk -F/ '{print $2}'`

if [ "$NAME" = "n1.htm" ];then
#echo $NAME
###错误,短信接口发送
fi

#END
 楼主| 发表于 2007-8-29 11:53:26 | 显示全部楼层
[root@localhost home]# cat n1.htm
2007-8-29 11:45:57
回复 支持 反对

使用道具 举报

发表于 2007-8-29 13:07:09 | 显示全部楼层
难道就不能从http头的时间戳判断?
回复 支持 反对

使用道具 举报

发表于 2007-8-29 20:49:21 | 显示全部楼层
写个crontab,每20分钟调用一次脚本。脚本内容为:wget文件,然后判断md5和上次是否一样。(上次md5值写到一个log中)。

或者nohup运行一个脚本。sleep 1200秒就wget一下,这样就不需要log文件记录md5了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-29 23:23:20 | 显示全部楼层
因为需要:如果此次获得的更新时间和上次获得的更新时间相差在20分钟以上

所以似乎用md5的方式不可行,因为我是比较htm里的时间作为标准,用md5会出现文件更改

了内容md5不同,但是时间上也不对的状况吧。
回复 支持 反对

使用道具 举报

发表于 2007-8-30 10:06:32 | 显示全部楼层
我是说从http header中判断文件改变的实践戳。

curl -H "If-Modified-Since: 时间"
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表