Lire ses logs system en mobilité

avatar-Nicolas Nicolas
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 :