#!/bin/bash

# uwaga - skrypt do poprawnego dzialania wymaga programow:
# lynx, grep, cut i date

# ponizej podaj interfejs sieciowy, z ktorego maja byc zbierane dane.
INTERFACE="eth0 eth1"

# ponizej juz nic nie zmieniaj!

function show () {
  lynx -dump http://licznik.upc.pl | grep -E "Adres|[0-9]+  MB|Pomiar" | cut -c 16-
}

function help() {
	echo "Program wyswietla informacje o danych z serwera chello.";
	echo "";
	echo "Uruchamiajac program z parametrem -v uzyskasz dodatkowe informacje";
	echo "o danych pobranych RX i wyslanych TX przez dana karte sieciowa";
	echo "Domyslnie statystyki kart sieciowych (-v) sa zapisywane w /var/log/ifstats.ethX";
	echo "a dane odczytane z licznika chello w katalogu /var/log/chellostats/ pod biezaca data.";
	echo "";
	echo "Uruchamiajac program z przelacznikiem -s wyswietlisz aktualne wartosci licznika chello.";
	exit 0;
}

function ifstats (){
    if [ $# -eq 1 ] ; then
	  STAT=`ifconfig $1 | grep "bytes" | cut -c11-`
	  if [ ! -w /var/log/ifstats.$1 ]; then
	    echo "Blad zapisu statystyk do pliku dla $1"
	    echo -e "${DATE}\t${STAT}"
	  else
	    echo -e "${DATE}\t${STAT}" >>/var/log/ifstats.$1
		test ! -d /var/log/chellostats && mkdir -p /var/log/chellostats
	    test -s /var/log/chellostats/${DATE2}.log || lynx -dump http://licznik.upc.pl >/var/log/chellostats/${DATE2}.log
	  fi
	  return 0
    else
	  echo "$0: bad interface name '$1'"
	  return 1
    fi
}

function verb() {
	if [ $UID -ne 0 ]; then
	  echo "Aby uzyc opcji -v musisz posiadac prawa roota!"
	  exit 0
	fi
	for iface in ${INTERFACE}; do
	  ifstats ${iface}
	done
}

DATE=`date +"%Y-%m-%d %H:%M:%S"`
DATE2=`date +"%Y%m%d"`
case "$1" in
  "") 		show;;
  "-s")		show;;
  "-S")		show;;
  "-show")	show;;
  "--show")	show;;

  "-?")		help;;
  "-h")		help;;
  "--help")	help;;
  "--?")	help;;

  "-v")			verb;;
  "-V")			verb;;
  "-verbose")	verb;;
  "--verbose")	verb;;
esac
exit 0
