- 论坛徽章:
- 0
|
本人想统计一下pptp用户拨入的时间及来源IP地址、登出时间及访问多少数据。现我编写了一个shell脚本程序,加在了/etc/ppp/ip-up及ip-down文件中,这样每个用户拨入服务器后将增加一条日志:
tail /etc/ppp/userlog:
Fri Feb 20 11:04:19 CST 2006 username xxx IP:192.168.1.67 logon Successfull remoteIP:218.141.40.26
Fri Feb 20 11:48:54 CST 2006 username xxx logout data:RX 170.3 KiB) TX 1.0 MiB)
一、ip-up程序如下:
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
LOGDEVICE=$6
REALDEVICE=$1
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post ifcfg-${LOGDEVICE}
/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}
#################### Log ########################
pptplogdirectory="/etc/ppp"
dialinfo=`/sbin/ifconfig $1`
dialtime=`/bin/date`
userip=`ifconfig $1|grep inet|awk '{print $3}'|awk -F: '{print $2}'`
localinfo=`/bin/cat /etc/ppp/chap-secrets|grep $userip|awk '{print "username:"$1"\t","localIP:" $4,"logon Successfull"}'`
if [ -e $pptplogdirectory/userlog ];then
/bin/cat /etc/ppp/chap-secrets|grep $userip|awk '{print logontime"\t","username:"$1"\t","IP:"$4,"logon Successfull""\t","remoteIP:"'$6'}' logontime="`/bin/date`" >>$pptplogdirectory/userlog
else
/bin/touch $pptplogdirectory/userlog
fi
####################################################
#/sbin/ifconfig $1 mtu 1600
#[ -x /etc/ppp/login.sh ] && /etc/ppp/login.sh "$@"
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
exit 0
二、/etc/ppp/ip-down可改为:
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-down.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
#size=`/sbin/ifconfig $1|grep "("`
size=`/sbin/ifconfig $1|grep "("|awk '{print "RX:"$3,$4,"TX:"$7,$8}'`
export PATH size
LOGDEVICE=$6
REALDEVICE=$1
/etc/ppp/ip-down.ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local "$@"
#################### Log ########################
pptplogdirectory="/etc/ppp"
if [ -e $pptplogdirectory/userlog ];then
/bin/cat /etc/ppp/chap-secrets|grep $5|awk '{print logouttime"\t","username:"$1"\t","logout""\t","data:"datasize}' logouttime="`/bin/date`" datasize="$size" >>$pptplogdirectory/userlog
#echo $5 >> /etc/ppp/userlog
else
/bin/touch $pptplogdirectory/userlog
fi
####################################################
/etc/sysconfig/network-scripts/ifdown-post ifcfg-${LOGDEVICE}
exit 0
[ 本帖最后由 jiangdaoyou 于 2006-4-18 16:11 编辑 ] |
|