1. 程式人生 > 其它 >linux shell 跟蹤網站變動

linux shell 跟蹤網站變動

用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。