Update and clean Tomato RAF files
[tomato.git] / release / src / router / pptpd / tools / vpnstats
blobbfc9a3d8c81a36505bddbb4c66a9cd5483b5d078
1 #!/bin/bash
3 # vpnstats Get commaseparated file and mail it to the admin
4 # Version 1.0 beta by Richard de Vroede - Linvision BV <richard@linvision.com>
7 # check for conf file, else create with defaults
8 CONF=/etc/vpnstats.conf
9 if [ ! -f $CONF ]; then
10 echo "LOGFILE=/var/log/messages.1" > $CONF
11 echo "STATFILE=/var/log/vpnstats" >> $CONF
12 echo "TEMPFILE=/tmp/tmpvpnstats" >> $CONF
13 echo "SMTP=localhost" >> $CONF
14 echo "FROM=" >> $CONF
15 echo "TO=" >> $CONF
17 . $CONF
19 # check for weekly crontab, else create it
20 CRON=/etc/cron.weekly/vpnstats.cron
21 if [ ! -f $CRON ]; then
22 echo "#!/bin/bash" > $CRON
23 echo "$0" >> $CRON
24 chmod 755 $CRON
27 echo "Name,Login,Logout,Connected Minutes,Recieved Bytes,Transmitted Bytes" > $STATFILE
28 PPPDPID=$(grep "peer authentication succeeded" $LOGFILE | cut -d [ -f2 | cut -d ] -f 1)
29 while [ "$PPPDPID" != "" ]; do
30 PID=$(echo $PPPDPID | awk '{print $1}')
31 grep $PID $LOGFILE | grep pppd | grep -v pptpd > $TEMPFILE
32 NAME=$(grep "succeeded for" $TEMPFILE | awk -F "succeeded for" '{print $2}' | cut -d " " -f 2)
33 LOGIN=$(grep "succeeded for" $TEMPFILE | cut -d " " -f 1-3)
34 LOGOUT=$(grep "Connect time" $TEMPFILE | cut -d " " -f 1-3)
35 CONNECT=$(grep "Connect time" $TEMPFILE | cut -d ] -f 2 | cut -d " " -f 4)
36 RXB=$(grep "Sent" $TEMPFILE | cut -d ] -f 2 | cut -d " " -f 3)
37 TXB=$(grep "Sent" $TEMPFILE | cut -d ] -f 2 | cut -d " " -f 6)
38 echo "$NAME,$LOGIN,$LOGOUT,$CONNECT,$RXB,$TXB" >> $STATFILE
39 PPPDPID=$(echo $PPPDPID | sed "s%$PID%%")
40 rm -f $TEMPFILE
41 done
43 MAILER=$(echo $(locate sendEmail) | awk '{print$1}')
44 if [ "$MAILER" != "" ]; then
45 if [ "$FROM" = "" ]; then FROM=root@`uname -n`; fi
46 if [ "$TO" = "" ]; then TO=root@localhost; fi
47 $MAILER -s $SMTP -u "VPNstats" -f $FROM -t $TO -m " " -a $STATFILE
48 else
49 if [ -f "/bin/mail" ]; then
50 cat $STATFILE | /bin/mail -s "VPNstats" $TO
51 else
52 echo "You need /bin/mail OR"
53 echo "the Perl program sendEmail located at http://freshmeat.net/projects/sendemail/"