用Bash脚本跟踪网站变动意味着要在不同的时间检索网站,然后用diff命令进行比对。我们可以使用curl和diff来实现。
脚本如下:
#! /bin/bash
#文件名:change_track.sh
#用途:跟踪网页更新
if [ $# -ne 1 ]
then
echo -e "Usage: $0 URL "
exit 1
fi
first_time=0
#非首次运行
if [ ! -e "last.html" ]
then
first_time=1
#首次运行
fi
curl --silent $1 -o recent.html
if [ $first_time -ne 1 ]
then
changes=$(diff -u last.html recent.html)
if [ -n "$changes" ]
then
echo -e "Changes: "
echo "$changes"
else
echo -e " Website has no changes"
fi
else
echo "[First run] Archiving..."
fi
cp recent.html last.html
工作原理:
脚本用[ ! -e "last.html" ]检查自己是否首次运行。如果last.html不存在,就意味着这是首次运行,因此要下载网页并将其复制为last.html
如果不是第一次运行,那么脚本应该下载一个新的网页副本(recent.html),然后用diff检查差异。如果有变化,则打印出变更信息并将recent.html复制成last.html。