Si comme moi vous avez besoin un jour de (re)trier vos log apache par ordre chronologique, voici un petit script qui vous aidera grandement:
#!/bin/bash
zcat "$1" \
| perl -ne 'my %mois; $moisJan="01";
$moisFeb="02"; $moisMar="03";
$moisApr="04"; $moisMay="05";
$moisJun="06"; $moisJul="07";
$moisAug="08"; $moisSep="09";
$moisOct="10"; $moisNov="11";
$moisDec="12"; print "$3$mois$1$4$5$6 $_"
if /^[0-9a-z\.\-\ ]+\[([0-9]+)\/([a-zA-Z]+)\/'\
'([0-9]+)\:([0-9]+)\:([0-9]+)\:([0-9]+)(.*)$/'\
| sort -T . \
| cut -d\ -f2- \
| gzip > "$2"
Pour la syntaxe:
$ script.sh log_unsorted.gz log_sorted.gz
C'est assez rapide (enfin ce genre d'appréciation est toujours relative), j'ai mesuré 6 minutes sur un PII@400Mhz/448Mo pour 300Mo de log apache.
