Openwrt之斷線郵件報告

爲何斷線了還能發郵件報告呢負載均衡

由於我用的是多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

相關文章
相關標籤/搜索