在Openwrt中獲取WAN口IP地址並推送至微信
前言
自從撿回了蝸牛用於家用NAS后,使用公網IP訪問家里的服務更加頻繁。雖然家里的軟路由已經配置了DDNS來更新IP域名綁定信息,但偶爾還是出現了幾次插件運行出錯。於是自己寫了一個獲取WAN口IP並利用 Server醬 推送至微信的腳本,通過Crontab定時任務執行來檢查IP是否變化。
代碼部分
#/bin/ash
#用於openwrt
#updata 2020/12/19 23:07
#start
echo "==========開始=========="
echo `date '+%Y-%m-%d %H:%M:%S'`
#獲取當前wan_ip
current_wan_ip=`ifconfig -a | grep inet | grep -v inet6 | grep -v 127.0.0.1 | grep -v 192.168.0.1 | awk '{print $2}' | tr -d "addr:"`
echo "IP: $current_wan_ip"
#是否存在ip.txt
if [ ! -f "/tmp/ip.txt" ]; then
echo "不存在ip.txt文件"
#第一次推送ip
content="?text=路由器IP已更新&""desp=當前IP:"$current_wan_ip
url="https://sc.ftqq.com/Server醬KEY已隱去.send"$content
curl $url
echo "已推送當前ip"
echo ${current_wan_ip} > /tmp/ip.txt
echo "當前IP已寫入ip.txt"
else
last_ip=`cat /tmp/ip.txt`
if [ "${current_wan_ip}" != "${last_ip}" ]; then
#發送新ip並更新ip.txt
content="?text=路由器IP已更新&""desp=當前IP:"$current_wan_ip
url="https://sc.ftqq.com/Server醬KEY已隱去.send"$content
curl $url
echo ${current_wan_ip} > /tmp/ip.txt
echo "已推送新ip並更新ip.txt"
else
echo "IP無變化,不需要推送"
fi
fi
echo `date '+%Y-%m-%d %H:%M:%S'`
echo -e "==========結束==========\n"
#end
部署
-
上傳該腳本並賦予執行權限
chmod a+x check_ip.sh -
編輯crontab任務計划
crontab -e進入任務計划列表添加以下任務,每5分鍾執行一次腳本,並將執行結果寫入到push.log文件中:
*/5 * * * * /usr/bin/myscripts/check_ip/check_ip.sh >> /usr/bin/myscripts/check_ip/push.log 2>&1 & -
通過push.log查看運行情況
root@OpenWrt:~# tail -f /usr/bin/myscripts/check_ip/push.log 2020-12-219 23:14:00 ==========開始========== 2020-12-19 23:15:00 IP: xx.xx.72.193 IP無變化,不需要推送 2020-12-19 23:15:00 ==========結束========== ==========開始========== 2020-12-19 23:20:00 IP: xx.xx.72.193 IP無變化,不需要推送 2021-02-19 23:20:00 ==========結束==========
