#!/usr/bin/perl # # Convert ftp logs to common log format so they can be processed by # standard web log processing software. # # Ftplog2Commonlog v. 1.0 is copyright 1995, 1996, 1997, 2000 by Joey Hess. # May be distributed under the terms of the GPL. # # Usage: # ftplog2commonlog < logfile # # Get the timezone offset. Needs a fairly new date command. my $date=`date -R`; ($tzoffset)=$date=~m/( [+-]?\d+)$/; while (<>) { ($mon,$mday,$time,$year,$host,$size,$filename)=m/.*?\s+(.*?)\s+(\d+)\s+(.*?)\s+(\d+)\s+.*?\s+(.*?)\s+(\d+)\s+(.*?)\s+/; if (length($mday) == 1) { $mday="0$mday" } if (length($mon) == 1) { $mon="0$mon" } print "$host - - [$mday/$mon/$year:$time$tzoffset] \"GET $filename HTTP/1.0\" 200 $size\n"; }