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

  • SteveBeard

    senior tag

    Sziasztok!

    A következőben kérném a segítségeteket!
    Nem igazán értek a scriptek készítéséhez, de sikerült összeraknom különböző forrásokból egy működő scriptet. Cronból időzítettem, a mai napig jól is működött. Ma mikor hazaértem látom, hogy pár órája nem működik. Megpróbáltam futtatni, de ezzel a hibaüzenettel leáll: line 114: arithmetic syntax error

    Semmit nem módosítottam, itthon sem voltam.
    a 114. sorban egy done van és nem igazán értem miért nem megy az, ami eddig teljesen jól működött.
    A scriptet folyamatosan javítgatom, mert menet közben, ahogy olvasom a leírásokat jövök rá hibákra. Tudom közel sem tökéletes, de azért eddig működött.
    A script idevonatkozó része:
    for MAC in $(cat /proc/net/arp | grep -v address | awk '{print $4}') ; do
    MAC_=$(echo $MAC | sed 's/:/-/g')
    IP=$(cat /proc/net/arp | grep $MAC | awk '{print $1}')
    # This assumes that a local dns server (like dnsmasq) is running
    NAME=$(nslookup $IP | grep Address | grep -v localhost | awk {'print $4}')

    # echo "mac: $MAC ip: $IP_ name: $NAME"

    UP=$(cat /opt/www_traff/traffic.tmp | awk '{print $2 " " $7}' | grep $IP | awk '{print $1}' | tr -d '\n' )
    ALL_UP=`ifconfig eth0.2 | grep bytes | awk -F ":" '{print $3}' | awk '{print $1}'`
    DOWN=$(cat /opt/www_traff/traffic.tmp | awk '{print $2 " " $8}' | grep $IP | awk '{print $1}' | tr -d '\n' )
    ALL_DOWN=`ifconfig eth0.2 | grep bytes | awk -F ":" '{print $2}' | awk '{print $1}'`

    if [ ! -e /opt/www_traff/rrd/$NAME.sum.traf ]; then
    echo 0 > /opt/www_traff/rrd/$NAME.sum.traf
    fi
    PREVSUM=`cat /opt/www_traff/rrd/$NAME.sum.traf`
    NOWSUM=$(($UP+$DOWN))
    SUM=$(($PREVSUM+$NOWSUM))
    echo $SUM >/opt/www_traff/rrd/$NAME.sum.traf


    COUNTIP=$(iptables -vnL traffic | grep $IP | wc -l | awk '{print $1}')
    if [ "$COUNTIP" -eq 0 ] ; then
    iptables -A traffic -s $IP
    iptables -A traffic -d $IP
    fi

    # create db if not exists
    if [ ! -e /opt/www_traff/rrd/${MAC_}.rrd ] ; then
    # echo creating /opt/www_traff/rrd/${MAC_}.rrd
    rrdtool create /opt/www_traff/rrd/${MAC_}.rrd -s 300 \
    DS:up:ABSOLUTE:600:0:U \
    DS:down:ABSOLUTE:600:0:U \
    RRA:AVERAGE:0.5:1:576 \
    RRA:AVERAGE:0.5:3:672 \
    RRA:AVERAGE:0.5:12:732
    fi

    #echo "up: $UP down: $DOWN"


    ED=`date +%s`
    STATDATE=`date +%Y-%m-%d`
    START=`expr $ED % 86400`

    logger -t traff_graph "Statdate:$STATDATE Start:$START"

    rrdtool update /opt/www_traff/rrd/${MAC_}.rrd N:$UP:$DOWN

    CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME"
    INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"
    SUMMB=$(($SUM/1048576))
    SUMTRAFTAG=$SUMTRAFTAG"<a> $NAME: $SUMMB MB</a><br>"

    WEEK=`echo 1 | awk '{print strftime("%Y-%W", systime()-86400)}'`
    STATDATE=week_$WEEK
    START=7d

    CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME"
    INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"


    MONTH=`echo 1 | awk '{print strftime("%Y-%m", systime()-86400)}'`
    STATDATE=month_$MONTH
    START=`echo 1 | awk '{print strftime("%d", systime()-86400)}'`d

    CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME"
    INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"
    done

    Előre is köszi a segítséget!

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