[+] przegl

Masz problemy z siecią bądź internetem? Zapytaj tu
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

jest takie narzedzie vnstat , jest w repo
http://humdi.net/vnstat/
i pokauje ogolnie / dzien ile danych sie pobralo. Poza tym conki pokazuje na bierzaco
Awatar użytkownika
szmergiell
Beginner
Posty: 195
Rejestracja: 20 maja 2008, 00:16
Lokalizacja: Poznań

Post autor: szmergiell »

Mam nadzieję, że ostatnia modyfikacja skryptu:

Kod: Zaznacz cały

#!/bin/sh

DATE=`vnstat --dumpdb | grep "d;" | awk 'BEGIN { FS = ";" } ; {print $3}'`

MB_RECEIVED=`vnstat --dumpdb | grep "d;" | awk 'BEGIN { FS = ";" } ; {print $4}'`
MB_SENT=`vnstat --dumpdb | grep "d;" | awk 'BEGIN { FS = ";" } ; {print $5}'`
KB_RECEIVED=`vnstat --dumpdb | grep "d;" | awk 'BEGIN { FS = ";" } ; {print $6}'`
KB_SENT=`vnstat --dumpdb | grep "d;" | awk 'BEGIN { FS = ";" } ; {print $7}'`

MB_RECEIVED_TODAY=`vnstat --dumpdb | grep "d;0" | awk 'BEGIN { FS = ";" } ; {print $4}'`
MB_SENT_TODAY=`vnstat --dumpdb | grep "d;0" | awk 'BEGIN { FS = ";" } ; {print $5}'`

PAYOFF_DAY=19
LIMIT=10000

YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`

TODAY=`date +%Y%m%d`

LAST_YEAR=$YEAR
if [ $DAY -le $PAYOFF_DAY ]; then
 LAST_MONTH=`expr $MONTH - 01`
 if [ $LAST_MONTH -lt 10 ]; then
  LAST_YEAR=`expr $LAST_YEAR \* 10`
 fi
 else
 LAST_MONTH=`expr $MONTH`
fi

if [ $LAST_MONTH -eq 0 ]; then
 LAST_YEAR=`expr $YEAR - 1`
 LAST_MONTH=12
fi

if [ $DAY -ge $PAYOFF_DAY ]; then
 MONTH=`expr $MONTH + 1`
 if [ $MONTH -gt 12 ]; then
  MONTH=01
  YEAR=`expr $YEAR + 1`
 fi
fi

LAST_PAYOFF=$LAST_YEAR$LAST_MONTH$PAYOFF_DAY
THIS_PAYOFF=$YEAR$MONTH$PAYOFF_DAY

days=0
for each_date in $DATE
do
 day=`date -d @$each_date "+%Y%m%d"`
 if [ $day -gt $LAST_PAYOFF ]; then
 days=`expr $days + 1`
 fi
done

var=0
for each_day in $MB_RECEIVED
do
 if [ $var -lt $days ]; then
  MB_RECEIVED_INTERNET=`expr $MB_RECEIVED_INTERNET + $each_day`
 fi
 var=`expr $var + 1`
done

var=0
for each_day in $KB_RECEIVED
do
 if [ $var -lt $days ]; then
  KB_RECEIVED_INTERNET=`expr $KB_RECEIVED_INTERNET + $each_day`
 fi
 var=`expr $var + 1`
done

var=0
for each_day in $MB_SENT
do
 if [ $var -lt $days ]; then
  MB_SENT_INTERNET=`expr $MB_SENT_INTERNET + $each_day`
 fi
 var=`expr $var + 1`
done

var=0
for each_day in $KB_SENT
do
 if [ $var -lt $days ]; then
  KB_SENT_INTERNET=`expr $KB_SENT_INTERNET + $each_day`
 fi
 var=`expr $var + 1`
done

KB=`expr $KB_RECEIVED_INTERNET + $KB_SENT_INTERNET`

KB_MB_INSIDE=`expr $KB / 1000`
KB=`expr $KB % 1000`

MB=`expr $MB_RECEIVED_INTERNET + $MB_SENT_INTERNET + $KB_MB_INSIDE`

LEFT_TRANSFER=`expr $LIMIT - $MB`

MIESIAC=`expr $LAST_MONTH % 7`
DLUGOSC=`expr $MIESIAC % 2`

if [ $DLUGOSC -eq 1 ]; then
 NO_OF_DAYS=31
 else
 NO_OF_DAYS=30
fi

if [ $LAST_MONTH -eq 2 ]; then
 NO_OF_DAYS=28
fi

if [ $DAY -gt $PAYOFF_DAY ]; then
 PAST_DAYS=`expr $DAY - $PAYOFF_DAY`
 else
 PAST_DAYS=`expr $NO_OF_DAYS - $PAYOFF_DAY + $DAY`
fi

LEFT_DAYS=`expr $NO_OF_DAYS - $PAST_DAYS + 1`
LIMIT_PER_DAY=`expr $LEFT_TRANSFER / $LEFT_DAYS`

SREDNIO=`expr $MB / $PAST_DAYS`

echo "dzień $PAST_DAYS: [$MB_RECEIVED_TODAY MiB / $MB_SENT_TODAY MiB]"
echo "pobrano $MB MiB"
echo "zostało $LEFT_TRANSFER MiB; $LIMIT_PER_DAY MiB/dzień"
ODPOWIEDZ