我是Linux/Asterisk的新手。我試圖編寫一個shell腳本來查找我的SIP中繼註冊,如果發現UNREACHABLE,那麼它會執行命令並檢查我的本地IP,如果我的本地IP是192.168.1.106,那麼它會將IP更改爲192.168.1.150反之亦然,然後發出命令,網絡服務重新啓動和amportal重新啓動。自動IP變更的Shell腳本
到目前爲止,我已經寫了以下內容,只是看起來,它似乎是錯誤的。任何幫助將不勝感激。由於
#!/bin/bash
asteriskbin=`which asterisk`
interval=10
ippath=/sbin/ifconfig
ip1=192.168.1.106
ip2=192.168.1.150
trunk="siptrunk"
run=true
while [[ "$run" == "true" ]]; do
checktrunk=`$asteriskbin -rx 「sip show peer $trunk」 | grep Status | grep -wc OK`
if [[ $checktrunk == 0 ]]; then
echo 「TEST Trunk Down」
else
echo 「SIP trunk registration OK.」
whatip=`$ippath eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'
if [[ $whatip == $ip1 ]]; then
ifconfig eth0 $ip2
else
ifconfig eth0 $ip1
network service restart
amportal restart
fi
sleep $interval
done
exit 1
請具體說明您認爲是錯誤的。 – l0b0
只是要把它拋出去 - 確保你正在運行通過ifconfig作爲根改變IP的任何腳本。 –