爲何斷線了還能發郵件報告呢負載均衡
由於我用的是多wan配置,4個接口都斷線的可能性不大oop
負載均衡用的是MWAN3這個軟件搞得確實不錯,自己就自帶事件報告的腳本了,所以要實現斷線報告也很簡單,把發郵件的命令加到對應位置就能夠了this
默認的腳本是這樣的spa
#!/bin/sh # to enable this script uncomment the case loop at the bottom # to report mwan status on interface hotplug ifup/ifdown events modify the lines in the send_alert function send_alert() { # variable "$1" stores the MWAN status information # insert your code here to send the contents of "$1" echo "$1" } gather_event_info() { # create event information message local EVENT_INFO="Interface [ "$INTERFACE" ($DEVICE) ] on router [ "$(uci get -p /var/state system.@system[0].hostname)" ] has triggered a hotplug [ "$ACTION" ] event on "$(date +"%a %b %d %Y %T %Z")"" # get current interface, policy and rule status local CURRENT_STATUS="$(/usr/sbin/mwan3 status)" # get last 50 MWAN systemlog messages local MWAN_LOG="$(echo -e "Last 50 MWAN systemlog entries. Newest entries sorted at the top:\n$(logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x')")" # pass event info to send_alert function send_alert "$(echo -e "$EVENT_INFO\n\n$CURRENT_STATUS\n\n$MWAN_LOG")" } #case "$ACTION" in # ifup) # gather_event_info # ;; # # ifdown) # gather_event_info # ;; #esac exit 0
可見最後的執行動做部分是屏蔽的,動做有兩個,接口上線和接口斷線。執行動做部分修改後的腳本以下code
case "$ACTION" in ifup) ;; ifdown) EMAIL='To: email_address@126.com\nSubject: Openwrt Alert\n\n'$INTERFACE' is down.' echo -e "$EMAIL" | sendmail -t ;; esac
如此便完成斷線時的郵件發送了~orm