cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu

Par dĂ©faut l’affichage de journalctl est difficilement exploitable par un script, cependant journalctl propose plusieurs façons d’obtenir une sortie au format JSON.

Le paramÚtre -o ou --output= permet de contrÎler le formatage des entrées de journal qui sont montrés.

Attention, ce paramĂštre ne s’applique que lorsque la commande journalctl est utilisĂ©e pour afficher tout ou partie du journal.


ඏ

les options possibles pour « -o », « --output= »

Option Description
short C’est la valeur par dĂ©faut et gĂ©nĂšre une sortie principalement identique au formatage des fichiers syslog classiques, montrant une ligne par entrĂ©e de journal.
short-full TrĂšs proche de short, elle affiche les horodatages au format acceptĂ© par les options --since= et --until=. Contrairement aux informations d’horodatage affichĂ©es en mode de sortie court, ce mode inclut des informations sur le jour de la semaine, l’annĂ©e et le fuseau horaire dans la sortie et est indĂ©pendant des paramĂštres rĂ©gionaux.
short-iso TrĂšs proche de short, elle affiche les horodatages d'horloge au format ISO 8601.
short-iso-precise comme pour short-iso mais inclut une précision à la microseconde.
short-precise TrÚs similaire, mais affiche les horodatages syslog classiques avec une précision totale de la microseconde.
short-monotonic Trùs similaire, mais affiche des horodatages monotones au lieu d’horodatages d’horloge murale.
short-delta comme pour monotone court mais inclut la diffĂ©rence de temps avec l’entrĂ©e prĂ©cĂ©dente. Peut-ĂȘtre que les diffĂ©rences de temps non fiables sont marquĂ©es par un *.
short-unix TrĂšs similaire, mais affiche les secondes Ă©coulĂ©es depuis le 1er janvier 1970 UTC au lieu des horodatages d’horloge (heure UNIX). L’heure est affichĂ©e avec une prĂ©cision de l’ordre de la microseconde.
verbose Affiche les Ă©lĂ©ments d’entrĂ©e entiĂšrement structurĂ©s avec tous les champs.
export SĂ©rialise le journal en un flux binaire (mais principalement basĂ© sur du texte) adaptĂ© aux sauvegardes et au transfert rĂ©seau (voir Journal Export Format [2] pour plus d’informations). Pour rĂ©importer le flux binaire au format journald natif, utilisez systemd-journal-remote(8).
json Formate les entrĂ©es en tant qu'objets JSON, sĂ©parĂ©s par des caractĂšres de retour Ă  la ligne (voir Journal JSON Format[3] pour plus d’informations).
json-pretty Formate les entrées en tant que structures de données JSON, mais les formate sur plusieurs lignes afin de les rendre plus lisibles par les humains.
json-sse Formate les entrées en tant que structures de données JSON, mais les enveloppe dans un format adapté aux événements envoyés par le serveur[4].
json-seq Formate les entrées en tant que structures de données JSON, mais les préfixe avec un caractÚre « ASCII Record Separator » (0x1E) et les suffixe avec un caractÚre ASCII Line Feed (0x0A), conformément aux séquences de texte JavaScript Object Notation (JSON)[5](application/ json-seq).
cat GĂ©nĂšre une sortie trĂšs concise, ne montrant que le message rĂ©el de chaque entrĂ©e de journal sans mĂ©tadonnĂ©es, pas mĂȘme un horodatage. Si elle est combinĂ©e avec l’option --output-fields=, les champs rĂ©pertoriĂ©s seront affichĂ©s pour chaque enregistrement de journal, au lieu du message.
with-unit Similaire Ă  short-full, mais prĂ©fixe les noms d’unitĂ© et d’unitĂ© utilisateur au lieu de l’identifiant syslog traditionnel. Utile lors de l’utilisation d’instances basĂ©es sur un modĂšle, car il inclura les arguments dans les noms d’unitĂ©.

ඏ

Le cas des sorties au format JSON.

Les valeurs de champ sont généralement encodées sous forme de chaßnes JSON, à trois exceptions prÚs :

  1. Les champs supĂ©rieurs Ă  4096 octets sont codĂ©s comme des valeurs nulles. (Cela peut ĂȘtre dĂ©sactivĂ© en passant --all, mais sachez que cela peut allouer des objets JSON trop longs pour ĂȘtre par la suite traitĂ©.)
  2. Les entrĂ©es de journal autorisent des champs non uniques dans la mĂȘme entrĂ©e de journal. JSON n’autorise pas les champs non uniques dans les objets. Pour cette raison, si un champ non unique est rencontrĂ©, un tableau JSON est utilisĂ© comme valeur de champ, rĂ©pertoriant toutes les valeurs de champ en tant qu’élĂ©ments.
  3. Les champs contenant des octets non imprimables ou non UTF8 sont encodés sous forme de tableaux contenant les octets bruts formatés individuellement en tant que nombres non signés.

Notez que cet encodage est rĂ©versible (Ă  l’exception de la limite de taille).


ඏ

Exemples

Nous ne traiterons que des deux sorties JSON de base, considĂ©rant que si vous avez besoin des autres formats c’est que vos compĂ©tences dĂ©passent le cadre de ce billet.

Les deux formats JSON qui nous intéressent sont donc :

journalctl -o json 


Et la version plus lisible par un humain :

journalctl -o json-pretty 


Qui correspond aux couleurs prÚs à :

journalctl -o json 
 | jq '.'
journalctl --no-pager -o json --since=yesterday
journalctl --no-pager -o json -p emerg..err
journalctl --no-pager -o json -p emerg..err --boot
journalctl --no-pager -o json -ex
journalctl --no-pager -o json UNIT=systemd-logind.service
journalctl --no-pager -o json UNIT=cron.service

ඏ

Liens

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog