Dernière mise à jour : 26/05/2016
À partir d'un fichier journal d'accès Apache au format par défaut, créez différents fichiers pour faire ressortir les requêtes qui ont généré les erreurs suivantes :
#!/usr/bin/perl # (c) Sébastien Adam 2013 # Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage # dans les Mêmes Conditions 2.0 Belgique. @ARGV && $#ARGV == 0 || die "Usage: $0 <path_to_log_file>\n"; open INPUT,"<".$ARGV[0] or die "$0: Can't read ".$ARGV[0].": $!\n"; open MOVED,">moved.log" or die "$0: Can't create moved log file: $!\n"; open NOT_FOUND,">not_found.log" or die "$0: Can't create not found log file: $!\n"; open FORBIDDEN,">forbidden.log" or die "$0: Can't create forbidden log file: $!\n"; open SERVER,">server_error.log" or die "$0: Can't create server errors log file: $!\n"; open OTHER,">other_error.log" or die "$0: Can't create other errors log file: $!\n"; while(chomp($line = <INPUT>)) { if($line =~ /^([\d\.]+)\s(.+?)\s(.+?)\s(\[.+?\])\s(".+?")\s(\d+)\s(\d+)$/) { $host = $1; $ident = $2; $username = $3; $datetime = $4; $request = $5; $code = $6; $size = $7; if(($code == 301) or ($code == 302)) { print MOVED $line."\n"; } elsif($code == 404) { print NOT_FOUND $line."\n"; } elsif($code == 403) { print FORBIDDEN $line."\n"; } elsif($code =~ /^5\d{2}$/) { print SERVER $line."\n"; } elsif($code != 200) { print OTHER $line."\n"; } } } close OTHER; close SERVER; close FORBIDDEN; close NOT_FOUND; close MOVED; close INPUT;
© Sébastien Adam 1996 ~ 2024 - https://www.sebastienadam.be/ - .