linux shell 跟蹤網站變動
阿新 • • 發佈:2021-07-12
用Bash指令碼跟蹤網站變動意味著要在不同的時間檢索網站,然後用diff命令進行比對。我們可以使用curl和diff來實現。
指令碼如下:
#! /bin/bash
#檔名:change_track.sh
#用途:跟蹤網頁更新
if [ $# -ne 1 ]
then
echo -e "Usage: $0 URL \n"
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:\n"
echo "$changes"
else
echo -e "\nWebsite 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。