Pour relancer la rubrique : logger

Répondre
Avatar du membre
tioker
modérateur
Messages : 1152
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Pour relancer la rubrique : logger

Message par tioker »

Oups; rien depuis 2023 ? Je pense plutôt que la réorganisation du forum à ré-orienté certains posts, laissant cette rubrique un peu orpheline. Donc je vais vous partager une de mes [récentes] découvertes.

J'utilise le terminal, j'y développe aussi des procédures en bash. Parfois je lançais des jobs pour lesquels je voulais conserver des logs. Je détournais donc la sortie vers un fichier que je voulais conserver. Et plus souvent des jobs en cron utilisaient aussi cette méthode. Exemple tout simple:

Code : Tout sélectionner

ls -lah > ~/Téléchargements/ls.log
Mais cette méthode n'était pas très rigoureuse ... j'ai donc cherché quelque chose de plus propre ... et je l'ai trouvée la commande logger.
Principe; ça écrit des logs dans le fichier /var/log/syslog, fichier qui est archivé toutes les semaines avec une rétention de 4 fichiers¹. Et on peut rechercher des informations grace à la commande journalctl.

Exemple:
Soit une procédure qui s'exécute et doit tracer des événements (bonne fin de traitement, liste, heure de passage...). On va tracer la date de passage, le lanceur et la procédure exécutée par la commande

Code : Tout sélectionner

logger -p user.info "$0 [I] Start rclone"
où -p est la facilité et le niveau ²
$0 est le nom du programme lancé
On peut aussi mettre un fichier texte dans le fichier syslog par la commande (le fichier tracé suit l'option -f)

Code : Tout sélectionner

logger -p user.info -f rclone.log
Et donc, si on veut vérifier [si]/[comment] le programme s'est lancé on exécute (ça c'est extrait d'une de mes procédures que je lance avec des options)

Code : Tout sélectionner

journalctl -o short-iso --since ${finalDate} | grep -E ${launcherName} | grep -E ${wordChecked}
où la date est celle à partir de laquelle on cherche, on filtre sur le lanceur et on cherche le mot wordChecked
Plus simple, on pourrait faire

Code : Tout sélectionner

journalctl -o short-iso -since '2025-02-23' | grep -E 'tioker' | grep -E 'dailyBackup.sh'
Voilà.
Si ça peut aider
Si vous avez des questions
Si ça peut relancer la rubrique
Je reste à l'écoute

¹ les paramètres d'archivage (périodicité, historique) sont dans le fichier /etc/logrotate.d/rsyslog.
² voir le manuel man
ImageDistrib : Linux Mint 22.2 Desktop : X-Cinnamon
Kernel : 6.8.0-79-generic CPU : AMD Ryzen 5 5600H with Radeon Graphics RAM : 14Gi
CG : NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)
Avatar du membre
bigpannard
Messages : 14
Enregistré le : lun. 10 févr. 2025 12:37
Localisation : Tournai
Contact :

Re: Pour relancer la rubrique : logger

Message par bigpannard »

Super post
j'aime bien utiliser cette méthode également.
Pour compléter j'utilise beaucoup les tags

Code : Tout sélectionner

logger -t ${LOG_TAG_NAME} -p local0.info "Script Starting"
ensuite visualisation des "log" de mon tag

Code : Tout sélectionner

journalctl -t LOG_TAG_NAME
et ensuite la visualisation en directe pour l'observer mes scripts en temps réel

Code : Tout sélectionner

journalctl -f -t LOG_TAG_NAME
Distrib : Linux Mint 22.2 Desktop : X-Cinnamon
Kernel : 6.8.0-85-generic CPU : AMD Ryzen 9 3900X 12-Core Processor RAM : 31Gi
CG : NVIDIA Corporation TU104 [GeForce RTX 2080 SUPER] (rev a1)

Laptop HP => Distrib : Linux Mint 22.1 Desktop : X-Cinnamon
Kernel : 6.8.0-60-generic CPU : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz RAM : 15Gi
CG : Intel Corporation HD Graphics 620 (rev 02)
Intel Corporation Sunrise Point-LP Integrated Sensor Hub (rev 21)
Répondre