Lire ses logs system en mobilité
Publié le
Si comme tout administrateur système qui se respecte, vous souhaitez consulter vos fichiers de logs assez fréquemment, voici une petite manipulation qui va vous permettre de simplifier et améliorer votre lecture depuis un terminal mobile.
Simplifier les commandes dans la console : bash alias
Vous pouvez ajouter vos propres alias de commandes via le fichier ~/.bash_aliases
et ainsi ajouter, par exemple, un alias "logAp" qui ira lire les 100 dernières lignes du fichier de logs Apache.
Editez le fichier ~/.bash_aliases
de votre serveur :
nano ~/.bash_aliases
Puis ajoutez :
## read logs
alias logAp='tail -n 100 /var/log/apache2/access.log '
Notez l'espace en fin de ligne. Cela permet de pouvoir lancer une commande réutilisant la sortie de logAp (pour faire un logAp | grep bot
par exemple).
Ce changement sera pris en compte à votre prochaine connexion ; pour activer les modifications de suite, lancez :
. ~/.bash_aliases
Désormais, pour vérifier les dernières connexions au serveur web, vous n'aurez qu'à saisir logAp
et ce quelque soit l'emplacement où vous êtes.
Optimiser la lecture des logs
Parcourir une centaine de lignes de logs sur un écran de smartphone n'est pas vraiment agréable. Pour améliorer la mise en forme, nous allons modifier légèrement la ligne écrite précédemment pour changer de couleur à chaque ligne (explication à la suite) :
## read logs with enhanced format
alias logAp='i=0; tail -n 100 /var/log/apache2/access.log | while read -r line; do i=$((i+1)); printf "\033[%dm%s\033[0m\n" $(($expr 31+($i % 2))) "$line"; done '
Décomposons la commande :
# intialisation d'un compteur
i=0;
# lecture des 100 dernières lignes du fichier de log et passage de
# la sortie vers la commande read qui va traiter ligne par ligne
tail -n 100 /var/log/apache2/access.log | while read -r line;
do
# incrément du compteur
i=$((i+1));
# sortie sur l'écran avec couleur alternant 1 ligne sur 2 en code 31 (rouge) ou 32 (vert)
# gestion de la couleur fait via \033[*m (avec *=couleur, ici passée en paramètre)
printf "\033[%dm%s\033[0m\n" $(($expr 31+($i % 2))) "$line";
done
Simplification de la connection du client SSH
Il ne vous reste qu'à faire une ligne dans le ~/.bash_aliases
de votre smartphone pour simplifier la connection SSH, et vous pourrez consulter, de façon presque lisible, un log en quelques caractères :)
Sources :
- Merci à Libfy pour l'initiation au bash alias
- Pour en savoir plus sur le formatage de la commande printf : Le shell en couleurs
- Le détail des différentes façons de lire des fichiers en Bash