• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/accel-pptpd/pptpd-1.3.3/tools/
1#!/bin/bash
2#
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>
5#
6
7# check for conf file, else create with defaults
8CONF=/etc/vpnstats.conf
9if [ ! -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
16fi
17. $CONF
18
19# check for weekly crontab, else create it
20CRON=/etc/cron.weekly/vpnstats.cron
21if [ ! -f $CRON ]; then
22    echo "#!/bin/bash" > $CRON
23    echo "$0" >> $CRON
24    chmod 755 $CRON
25fi
26
27echo "Name,Login,Logout,Connected Minutes,Recieved Bytes,Transmitted Bytes" > $STATFILE
28PPPDPID=$(grep "peer authentication succeeded" $LOGFILE | cut -d [ -f2 | cut -d ] -f 1)
29while [ "$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
41done
42
43MAILER=$(echo $(locate sendEmail) | awk '{print$1}')
44if [ "$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
48else
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/"
54    fi
55fi
56