====== Les LOG ====== ===== Lire les log ===== Pour lire ses log en couleurs d'une façon simple, rapide et efficace, j'ai développé u petit script sympathique. Pour cela installez les paquets **less** et **ccze** aptitude install less ccze Créez le fichier suivant en le plaçant dans **/usr/bin/** et en le rendant exécutable. chmod +x logview #!/bin/bash case "$1" in "" | "-h" | "--help") echo "Usage : logview " echo "-h, --help : this help" echo "Accept gzip file" ;; *) if [[ -f $1 ]] then if [[ `/usr/bin/file -b --mime-type $1` == "application/x-gzip" ]] then /bin/zcat $1 | /usr/bin/ccze -A | /usr/bin/less -R else /bin/cat $1 | /usr/bin/ccze -A | /usr/bin/less -R fi else echo "$1 n'est pas un fichier valide" fi ;; esac Ce script lit aussi bien les log en texte brut que les logs gzippés. logview /var/log/syslog logview /var/log/syslog.2.gz La navigation et recherche se fait comme sous **vim** Tapez **/** pour lancer une recherche puis **Entrée**\\ **n** pour passer à l’occurrence suivante.\\ **q** pour quitter. ===== Avec vim ===== Il est possible de voir les logs avec une colorisation syntaxique directement et automatiquement dans **vim** (j'ai enfin trouvé..) [[linux:vim#coloriser_les_fichiers_de_log|Consulter notre dossier sur ce sujet]] ===== Traitement des log ===== ==== Sortir le nombre de fois qu'une url a été atteinte dans un log apache ==== Savoir combien de fois apparait une adresse ip dans un fichier de log grep -c '10.10.10.10' access.log Compter le nombre de fois qu'une url de type /news/12345 a été atteinte egrep -c '^10.10.10.10.*/news/[0-9]+' access.log Ressortir que les numéros id news qu iont été lu sed -r '/^10\.10\.10\.10.*\/news\/[0-9]+/!d;s/.*\/news\/([0-9]+).*/\1/' access.log Pour ces ids, sortir le nombre de fois qu'ils ont été lu pour chacun sed -r '/^10\.10\.10\.10.*\/news\/[0-9]+/!d;s/.*\/news\/([0-9]+).*/\1/' access.log | sort | uniq -c | less ==== Quel ip ressort le plus ==== sed -r 's/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) .*/ip: \1/' access.log | sort | uniq -c | sort -rh | less cat access.* | awk '{ print $1 }' | sort | uniq -c | sort -n ==== tail ==== Y mettre un peu de couleur rouge tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g' orange tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;33m$&\e[0m/g' vert tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;32m$&\e[0m/g'