Linux
wget - 僅在返回碼為 200 時保存,否則刪除
我有一個腳本每隔幾分鐘檢查一次我的公共 IP 地址。
問題是 ISP 有時會給我記憶體頁面(我知道,我在 wget 中使用了所有相關的 args,isp 是由一群不稱職的某某顯然製造了自己的超高效記憶體伺服器)或我自己的路由器製作的錯誤頁面。
結果,當 wget 應該保存我的 IP 地址時,它會保存錯誤頁面。
編輯:
我用來檢測 IP 地址變化的東西
此程式碼段應為您指明正確的方向:
wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK' 1 is_200_ok=$(wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK') echo $is_200_ok 1
但是我會為此使用python或perl。這會更容易。
它在您的腳本中的外觀:
#!/bin/bash rm -f ip-current /tmp/ip-message-temp touch ip-old is_200_ok=$(wget --server-response 78.47.35.18/ip-blabl.php -O ip-tmp 2>&1| grep -c 'HTTP/1.1 200 OK') if [ $is_200_ok == 1 ]; then mv ip-tmp ip-current echo "YES" else echo "Got error instead of IP address :(" exit 1 fi
還要避免直接寫入系統日誌,最好使用記錄器:
NAME logger — a shell command interface to the syslog(3) system log module