Outils pour utilisateurs

Outils du site


Panneau latéral

linux:log (lu 7467 fois)

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
logview
#!/bin/bash
case "$1" in
        "" | "-h" | "--help")
                echo "Usage : logview <filename>"
                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é..)

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'
linux/log.txt · Dernière modification: 25-02-2021 15:55 de edmc73