Syslog personnel (Linux et macOS)

bashSi vous utilisez de nomhbreux scripts (bash ou autre) au quotidien sur votre ordinateur (Mac ou Linux…) cet article devrait vous intéresser.
En effet nous allons ici mettre en place un système de log qui va permettre de suivre l’exécution des scripts bash.

Le système n’utilise pas le syslog d’origine.

Le principe

  • Création d’une fonction bash mylog, qui prendra en param le texte à ajouter dans le log
  • Chaque ligne du log sera préfixée avec la date et l’heure courante.
  • La fonction sera stockée dans un fichier spécifique qu’il faudra inclure dans chaque script.

Fonction mylog

function mylog {
  MYLOG="/home/toto/my_syslog"
  DD=`date +"%d/%m/%Y - %H:%M"`
  echo "$DD - $1" >>$MYLOG
}

Explication du code

  • MYLOG pointe vers le fichier de log, a adapter selon votre configuration
  • DD contient la date courante au format jour/mois/année – heure:minure
  • la dernière ligne inscrit la date ($DD) et le message ($1) dans le fichier MYLOG
  • L’utilisation de >> permet d’effectuer un ajout au fichier.

Pour l’exemple, le code est enregistré dans le fichier /home/toto/bash_funcs

Utilisation de mylog dans vos scripts

Dans vos script il faudra en premier lieu inclure le fichier bash_funcs

source /PATH.../bash_funcs

Attention si vous scripts utilise /bin/sh comme interpréteur cela ne fonctionnera pas, il faut utiliser /bin/bash (c’est la première ligne du script)

Ensuite pour utiliser la fonction :

mylog "TEXTE A AFFICHER DANS LE FICHIER DE LOG"

Par exemple :  mylog « Rsync dossier DATA… »

Affichage du fichier my_syslog

Sous linux il est facile d’afficher un fichier texte en flux continu avec la commande tail -f my_syslog dans un terminal.
Cela fonctionne également sous MacOS.

mysyslog-linux

Sur MacOS en utilisant l’utilitaire GeekTool il est possible de placer le contenu du fichier (les x dernières lignes) directement sur le fond d’écran. Il suffit d’utiliser un widget ‘Shell’ avec la commande : tail -n 10 /Users/LOGIN/my_syslog. (j’ai remarqué que le tail -f ne fonctionnait pas correctement avec GeekTool).

mysyslog-geektool

Voici mon écran actuel (07/2018, sous High-Sierra et Geektool V3.3.1)

Pas de Commentaire

Qu'en pensez-vous ?

Votre formulaire contient des erreurs, merci de corriger.