Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Feb 2002 14:51:15 -0000
From:      "Barry Byrne" <barry.byrne@wbtsystems.com>
To:        "Scott Aitken" <null0@pobox.com>, <freebsd-questions@FreeBSD.ORG>
Subject:   RE: Sorting Apache logs by Date and Time
Message-ID:  <NCBBIAMNAKDKFJIIGNPKGENDHFAA.barry.byrne@wbtsystems.com>
In-Reply-To: <20020222050939.A43475@gandalf.scott.sh>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format...

------------=_1014389478-130-6
Content-Type: multipart/mixed; boundary="----------=_1014389479-130-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.411 (Entity 5.404)

This is a multi-part message in MIME format...

------------=_1014389479-130-8
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Scott:

Another solution:

script below called sort.pl does the job in three stages:

1. Tag the beginning of each line with a sortable tag
2. Sort the file
3. Remove the tag

cat access_log | sort.pl > access_log.sorted

Cheers,

Barry


---------------------------- start sort.pl ------------------------
#!/usr/bin/perl
# sort.pl

$TEMP="/tmp/.temp$$";

open(TEMP, "> $TEMP") || die "Can't open $TEMP for writing";

%months=( 'Jan' => '01', 'Feb' => '02', 'Mar' => '03',
          'Apr' => '04', 'May' => '05', 'Jun' => '06',
          'Jul' => '07', 'Aug' => '08', 'Sep' => '09',
          'Oct' => '10', 'Nov' => '11', 'Dec' => '12' );

while (<>) {
  if (/\d+\.\d+\.\d+\.\d+\s-\s-\s\[(\d+)\/(\S+)\/(\d+):(.+)\]\s\".*$/) {
    $year=$3;
    $month=$months{$2};
    $date=$1;
    $time=$4;
    print(TEMP "TIMETAG-$year$month$date$time-TIMETAG:$_\n");
  }
}
close(TEMP);

system("sort -o $TEMP $TEMP");

open(TEMP, "< $TEMP") || die "Can't open $TEMP for reading";

while (<TEMP>) {
  if (/TIMETAG-.*?TIMETAG:(.*)$/) {
    print("$1\n");
  }
}

unlink($TEMP);
---------------------------- end sort.pl ------------------------



--
Barry Byrne, IT Manager,
WBT Systems, Block 2, Harcourt Centre
Harcourt Street, Dublin 2, Ireland


> -----Original Message-----
> From: owner-freebsd-questions@FreeBSD.ORG
> [mailto:owner-freebsd-questions@FreeBSD.ORG]On Behalf Of Scott Aitken
> Sent: 21 February 2002 18:10
> To: freebsd-questions@FreeBSD.ORG
> Subject: Sorting Apache logs by Date and Time
> 
> 
> Hi All,
> is there a quick way to sort apache logs by the date and time 
> field if the format is the following:
> 
> 146.101.149.65 - - [22/Feb/2002:04:18:54 +1100] "GET 
> /images/test.png HTTP/1.0" 200 381 
> "http://www-redirect.scott.sh:8080/cgi-bin/fred.pl" "Mozilla/4.0 
> (compatible; MSIE 5.5; Windows 98)"
> 
> This is a sample line.
> 
> I have found difficulty in using the sort utility because of the 
> textual month names, as well as the fact that the separators are 
> both slashes and colons.
> 
> Regards and TIA,
> Scott Aitken
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
> 

------------=_1014389479-130-8--

------------=_1014389478-130-6--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NCBBIAMNAKDKFJIIGNPKGENDHFAA.barry.byrne>