[plug] Fedore Core 2 - Awstats - vsFTPd
Vincent Tamet
Osg at free.fr
Fri Nov 12 01:49:14 WST 2004
I make i little script to convert vsftpd special format
(xferlog_std_format=NO), and make a awstats.ftp.conf wich work with.
The script /usr/local/bin/vsftpconvert.pl
#!/usr/bin/perl -w
#############################################################################
# Conversion de log du format vsftpd a un format proche de Proftpd #
# afin de traiter les logs par awstats. #
# 20041111 par OSG : Vincent Tamet // osg at free.fr #
# https://osgpcq.no-ip.com/osg #
# Merci de l'aide de Laurent Paccalet et de Laurent Chevillard. #
#############################################################################
# Exemple de log Vsftpd
# Tue Sep 21 20:44:12 2004 [pid 27399] CONNECT: Client "192.168.1.1"
# Tue Sep 21 20:44:16 2004 [pid 27398] [vince] OK LOGIN: Client "192.168.1.1"
# Tue Sep 21 20:44:35 2004 [pid 27400] [vince] FAIL MKDIR: Client
"192.168.1.1", "/toto/osg/photos/20030412"
# Tue Sep 21 20:44:51 2004 [pid 27400] [vince] OK MKDIR: Client
"192.168.1.1", "/toto/osg/photos/1"
# Tue Nov 09 03:47:09 2004 [pid 18776] [vince] OK UPLOAD: Client
"194.153.88.6", "/toto.wav", 231116 bytes, 165.92Kbyte/sec
# Le cas suivant n'est pas pris en compte.
# Sat Nov 6 17:02:50 2004 [pid 27890] [vince] OK UPLOAD: Client
"192.168.1.1", "/toto/NINFO.INI", 0.00Kbyte/sec
# Attention le nom de fichier ne doit pas contenir de " ".
#############################################################################
# configuration de vsftpd: /etc/vsftpd.conf
# xferlog_enable=YES
# xferlog_file=/var/log/vsftpd.log
# xferlog_std_format=NO
#############################################################################
# Exemple de log Proftpd (compris par awstats)
# [08/Nov/2004:16:56:44] 192.168.1.1 vince RETR /toto/HIFI/TITRES/toto.wav
OK 1640
#############################################################################
# Configuration de awstats par rapport au awstats.model.conf
#
# LogFile="perl /usr/local/bin/vsftpconvert.pl /var/log/vsftpd.log |"
# LogFile="/var/log/xferlog"
# LogType=F
# LogFormat="%time1 %host %logname %method %url %code %bytesd"
# LogSeparator=" "
# NotPageList=""
# LevelForBrowsersDetection=0
# LevelForOSDetection=0
# LevelForRefererAnalyze=0
# LevelForRobotsDetection=0
# LevelForWormsDetection=0
# LevelForSearchEnginesDetection=0
# ShowLinksOnUrl=0
# ShowMenu=1
# ShowMonthStats=UVHB
# ShowDaysOfMonthStats=HB
# ShowDaysOfWeekStats=HB
# ShowHoursStats=HB
# ShowDomainsStats=HB
# ShowHostsStats=HBL
# ShowAuthenticatedUsers=HBL
# ShowRobotsStats=0
# ShowEMailSenders=0
# ShowEMailReceivers=0
# ShowSessionsStats=1
# ShowPagesStats=PBEX
# ShowFileTypesStats=HB
# ShowFileSizesStats=0
# ShowBrowsersStats=0
# ShowOSStats=0
# ShowOriginStats=0
# ShowKeyphrasesStats=0
# ShowKeywordsStats=0
# ShowMiscStats=0
# ShowHTTPErrorsStats=0
# ShowSMTPErrorsStats=0
#############################################################################
# programme principal
#############################################################################
$DEBUG=0;
$FICH=$ARGV[0];
open (FICHLOG, $FICH);
while (<FICHLOG>) {
if
(m{^\w*?\s(.*?)\s+(\d+)\s(\d\d:\d\d:\d\d)\s(\d{4})\s\[.*?\]\s\[(.*?)\]\s(.*?
)\s(.*?):\sClient\s"(.*?)",\s"(.*?)",\
s(\d+)\sbytes.*$})
{
if ("$7" eq "UPLOAD")
{
if ($DEBUG) {print ">> UPLOAD\n"};
$MET="STOR";
}
else {
if ($DEBUG) {print ">> DOWNLOAD\n"};
$MET="RETR";
}
$URL=$9;
$URL=~ tr/ /^/;
print "[$2/$1/$4:$3] $8 $5 $MET $URL $6 $10\n";
}
else {
if
(m{^\w*?\s(.*?)\s+(\d+)\s(\d\d:\d\d:\d\d)\s(\d{4})\s\[.*?\]\s\[(.*?)\]\s(.*?
)\s(.*?):\sClient\s"(.
*?)",\s"(.*?)"$})
{
if ($DEBUG) {print ">> MKDIR\n"}
$URL=$9;
$URL=~ tr/ /^/;
print "[$2/$1/$4:$3] $8 $5 $7 $URL
$6 0\n";
}
else {
if
(m{^\w*?\s(.*?)\s+(\d+)\s(\d\d:\d\d:\d\d)\s(\d{4})\s\[.*?\]\s\[(.*?)\]\s(.*?
)\s(.*
?):\sClient\s"(.*?)"$})
{
if ($DEBUG) {print
">> LOGIN\n"}
print
"[$2/$1/$4:$3] $8 $5 $7 / $6 0\n";
}
else {
if ($DEBUG) {print
">> CORRUPT\n"}
print "$_";
}
}
}
}
close (FICHLOG);
#############################################################################
# fin du programme
############################################################################
#
More information about the plug
mailing list