Új hozzászólás Aktív témák

  • ecaddict

    senior tag

    válasz sz.gergely #9558 üzenetére

    Én is script-et javasolnék ami vagy a rendszer logba vagy egy külön fájlba ír. Néhány ötlet (most dobtam össze, nem nagyon van kidolgozva).
    Csak ping, és IP cím csere:

    #!/bin/sh
    MONWAIT=30

    PIPADDR=`nvram get wan_ipaddr_t`
    while true
    do
    PTIME=`/bin/ping -c 1 bix.hu | /bin/sed -n '/time=/{s/.*time=\([0-9]*\)/\1/p}'`
    IPADDR=`nvram get wan_ipaddr_t`
    if [ "$PIPADDR" -ne "$IPADDR" ];then
    logger -t NETMON "WAN IP has changed, new address is: $IPADDR"
    PIPADDR="$IPADDR"
    fi
    if [ -z "PTIME" ];then
    logger -t NETMON "No response for ping!"
    else
    logger -t NETMON "Ping response is: $PTIME"
    fi
    sleep "$MONWAIT"
    done

    Előzőek+WAN forgalmi számlálók különbsége:

    #!/bin/sh
    MONWAIT=30

    PIPADDR=`nvram get wan_ipaddr_t`
    WANIF=`nvram get wan_ifname`
    iptables -t mangle -D PREROUTING -i "$WANIF"
    iptables -t mangle -D POSTROUTING -o "$WANIF"
    iptables -t mangle -I PREROUTING -i "$WANIF"
    iptables -t mangle -I POSTROUTING -o "$WANIF"

    IN=`iptables-save -c -t mangle | /bin/sed -n '/PREROUTING -i '''$WANIF'''/{s/[^0-9]*\([0-9:]*\).*/\1/p}'`
    OU=`iptables-save -c -t mangle | /bin/sed -n '/POSTROUTING -o '''$WANIF'''/{s/[^0-9]*\([0-9:]*\).*/\1/p}'`
    OINP=`echo "$IN" | /bin/sed -n 's/:.*//p'`
    OINB=`echo "$IN" | /bin/sed -n 's/.*://p'`
    OOUP=`echo "$OU" | /bin/sed -n 's/:.*//p'`
    OOUB=`echo "$OU" | /bin/sed -n 's/.*://p'`

    while true
    do
    PTIME=`/bin/ping -c 1 bix.hu | /bin/sed -n '/time=/{s/.*time=\([0-9]*\)/\1/p}'`
    IPADDR=`nvram get wan_ipaddr_t`
    if [ "$PIPADDR" -ne "$IPADDR" ];then
    logger -t NETMON "WAN IP has changed, new address is: $IPADDR"
    PIPADDR="$IPADDR"
    fi
    if [ -z "PTIME" ];then
    logger -t NETMON "No response for ping!"
    else
    logger -t NETMON "Ping response is: $PTIME"
    fi
    IN=`iptables-save -c -t mangle | /bin/sed -n '/PREROUTING -i '''$WANIF'''/{s/[^0-9]*\([0-9:]*\).*/\1/p}'`
    OU=`iptables-save -c -t mangle | /bin/sed -n '/POSTROUTING -o '''$WANIF'''/{s/[^0-9]*\([0-9:]*\).*/\1/p}'`
    INP=`echo "$IN" | /bin/sed -n 's/:.*//p'`
    INB=`echo "$IN" | /bin/sed -n 's/.*://p'`
    OUP=`echo "$OU" | /bin/sed -n 's/:.*//p'`
    OUB=`echo "$OU" | /bin/sed -n 's/.*://p'`
    let "DINP=$INP-$OINP"; OINP="$INP"
    let "DINB=$INB-$OINB"; OINB="$INB"
    let "DOUP=$OUP-$OOUP"; OOUP="$OUP"
    let "DOUB=$OUB-$OOUB"; OOUB="$OUB"
    logger -t NETMON "In last $MONWAIT s $DINP packets and $DINB bytes received and $DOUP packets and $DOUB bytes sent."
    sleep "$MONWAIT"
    done

    Simán lehet utólag szűrni a NETMON-ra kereséssel, vagy grafikont rajzolni hasonlóan mint pl. az rtorrent esetében teszem az rtorrent.cgi-vel (a fewgets-es csomagban megtalálható).

    Lehet kicsit többet kell dolgozni mintha előkapnál valami progit (egyébként én ilyenről nem tudok, de mondjuk nem is nagyon kerestem), viszont cserébe pont azt fogja tudni ami neked kell (pl. a fenti példában félperces felbontásban kapod a forgalmi statisztikát, de lehet a ping-en is állítani stb.).
    Shell referencia.

    ### RT-N16, WL-500 Oleg optware script ami majdnem mindent feltesz ### ===========> http://wl500g.info/showthread.php?t=23684 <===========

Új hozzászólás Aktív témák