Le répertoire /run/log
est en RAM, donc en cas d’arrêt du système les données qu’il contient seront perdues mais il est possible de déplacer ses données dans un autre répertoire.
Retrouver les logs perdus avec journalctl :
La commande journalctl
permet de récuperer les logs perdus.
# journalctl |
Afficher les 2 dernières entrées :
# journalctl -n 2 |
Sep 18 15:20:52 SERVER02 systemd[1]: Started Network Manager Script Dispatcher Service. |
Afficher les 10 dernières entrées en temps réel :
# journalctl -f |
Sep 18 14:33:05 SERVER02 systemd[1]: dnf-makecache.service: Deactivated successfully. |
Filtrer les entrées avec la priorité err
ou supérieure :
# journalctl -p err |
Sep 08 12:43:24 SERVER02 sudo[25805]: pam_unix(sudo:auth): conversation failed |
Afficher les messages d’une unité précise :
# journalctl -u sshd.service |
Aug 28 10:25:13 SERVER02 systemd[1]: Starting OpenSSH server daemon... |
Afficher depuis une date avec --since
et --until
:
# journalctl --since today |
# journalctl --since "-1 hour" |
Dans une tranche de temps :
# journalctl --since "2024-09-18 03:00" --until "2024-09-18 03:30" |
Sep 18 03:01:01 SERVER02 CROND[31962]: (root) CMD (run-parts /etc/cron.hourly) |
Afficher plus de détails :
# journalctl -o verbose |
Exemple
# journalctl --since "2024-09-18 03:00" --until "2024-09-18 03:30" -o verbose |
[...] |
La partie TRUSTED JOURNAL FIELDS du man de https://man7.org/linux/man-pages/man7/systemd.journal-fields.7.html (man 7 systemd.journal-fields
) permet de faire une recherche précise sur des champs en particulier :
# journalctl _SYSTEMD_UNIT=crond.service _PID=31961 |
Sep 18 03:01:01 SERVER02 CROND[31961]: (root) CMDEND (run-parts /etc/cron.hourly) |
Afficher et filtrer les logs de redémarrage
Affichier les logs à partir du 1er démarrage du système :
# journalctl -b 1 |
Affichier les logs à partir du 2ème démarrage du système :
# journalctl -b 2 |
Affichier tous les logs liées à un démarrage du système :
# journalctl --list-boots |
Affichier les logs à partir du démarrage actuel du système :
# journalctl -b |
Affichier les logs à partir du démarrage précédent du système :
# journalctl -b -1 |
Exemples :
# journalctl --list-boots |
IDX BOOT ID FIRST ENTRY LAST ENTRY |
/!\ Résumé des commandes
Commandes :
# journalctl // Afficher les logs perdus |
Fichiers :
/run/log // Répertoire des logs volatils |
Cas Pratique
Afficher uniquement les événements de log provenant du processus systemd PID 1 :
[aline@SERVER01 ~]$ journalctl _PID=1 |
[...] |
Afficher tous les événements de log provenant du service système avec un UID de 1337 :
[aline@SERVER01 ~]$ journalctl _UID=1337 |
Aug 14 12:40:56 SERVER01.org dbus-broker-lau[727]: Ready |
Afficher les logs avec une priorité warning ou supérieure avec journalctl -p warning
:
[aline@SERVER01 ~]$ journalctl -p warning |
[...] |
Afficher tous les logs enregistrés au cours des 2 dernières heure :
[aline@SERVER01 ~]$ journalctl --since "-2h" |
[...] |
Afficher tous les logs provenant du service sshd
depuis 09:00:00 avec journalctl --since
:
[aline@SERVER01 ~]$ journalctl --since 9:00:00 _SYSTEMD_UNIT="sshd.service" |
Sep 18 12:18:51 SERV02 sshd[32304]: Accepted password for root from 192.168.1.105 port 42998 ssh2 |
Documentation
MAN journalctl(1)
MAN systemd.log-fields(7)
MAN systemd.time(7)