Comment lire le dmesg de la session précédente? (dmesg.0)

29

dmesg est une commande pour lire le contenu /var/log/dmesg. La bonne chose par rapport à less /var/log/dmesgest que je peux utiliser l'indicateur -T pour une sortie de temps lisible par l'homme.

Maintenant, je voudrais regarder /var/log/dmesg.0, pour voir comment mon ordinateur est tombé en panne. Le fichier contient les journaux de la session précédente. Mais je veux utiliser l'indicateur -T de la commande dmesg. Ou quelque chose d'équivalent.

Une idée comment?

Cela ne me dérangerait pas un outil graphique, mais le meilleur serait une solution cli.

don Quichotte
la source

Réponses:

29

Pour dissiper une idée fausse fondamentale, dmesgne lit pas /var/log/dmesg. Il lit directement à partir du tampon d'anneau du noyau et vous donne les N messages les plus récents. Vers la fin du processus de démarrage, dmesgest invoqué pour écrire les messages de démarrage /var/log/dmesg(les anciennes versions de ce fichier étant tournées de la manière habituelle).

Une fois que vous avez un fonctionnement syslog ( syslogd, rsyslogd, syslog-ng, etc.) , il lit à partir du noyau tampon et écrit dans un fichier tel que /var/log/kern.log. (C'est pour Debian; les autres systèmes varieront). En supposant que votre système était capable d'écrire sur le disque et de vider les tampons de disque avant qu'il ne plante, c'est là que vous trouverez les cris de mort du noyau.

Sur mon système Debian, le /var/log/kern.logfichier contient des horodatages lisibles par l'homme.

roaima
la source
1
Je pense que cela répond à ma question, merci! Malheureusement, je n'arrive toujours pas à comprendre pourquoi il se bloque lors de la suspension, mais c'est une autre histoire.
donquixote
Une chose sur ma machine autre que l' dmesgécriture kern.log, en particulier les démons suivants spécifiquement les démons suivantsgnome-keyring-d,goa-daemon,gvfsd,gvfsd-network,gvfs-gphoto2-vo,NetworkManager,upowerd
Att Righ
@AttRigh la seule chose censée écrire dans ce fichier est le noyau. Vous pourriez poser une nouvelle question
roaima
@roima Intéressant ... Je n'ai pas vraiment de question à poser car je suis content d'utiliser journalctlles journaux! J'ai juste pensé que d'autres pourraient être intéressés par cette incohérence. En regardant mon système i) il utilise rsyslogpour se connecter à l' kern.logaide de l'entrée suivante kern.* -/var/log/kern.log, un appel pour debsums -econfirmer qu'aucun de mes fichiers de configuration n'est lié à rsyslogou systemdn'a été modifié ( serverfault.com/questions/90400/… ), ma version de rsyslog est 8.24.0-1, et j'utilise debian stretch.
Att Righ
@AttRigh vous aimerez peut-être aussi lire unix.stackexchange.com/a/294206/100397
roaima
34

Bien qu'un peu tard pour l'OP ...

J'utilise Fedora, mais si votre système utilise, journalctlvous pouvez facilement obtenir les messages du noyau (journal dmesg) à partir d'un arrêt / crash précédent (dans un dmesg -Tformat) par le biais des éléments suivants.

Options:

  • -k (dmesg)
  • -b < boot_number > (combien de redémarrages il y a 0, -1, -2, etc.)
  • -o court-précis (dmesg -T)
  • -p priorité Filtrer par sortie prioritaire (4 pour filtrer les avis et les informations).

NOTE: il y a aussi un -o shortet -o short-isoqui vous donne la date seulement et la date-heure au format iso respectivement.

Commandes:

  • Démarrage actuel: journalctl -o short-precise -k
  • Dernier démarrage: journalctl -o short-precise -k -b -1
  • Deux bottes avant: journalctl -o short-precise -k -b -2
  • Etc

Exemple de sortie:

Feb 18 21:41:26.917400 localhost.localdomain kernel: usb 2-4: USB disconnect, device number 12
Feb 18 21:41:26.917678 localhost.localdomain kernel: usb 2-4.1: USB disconnect, device number 13
Feb 18 21:41:27.246264 localhost.localdomain kernel: usb 2-4: new high-speed USB device number 22 using xhci_hcd
Feb 18 21:41:27.419395 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=05e3, idProduct=0610
Feb 18 21:41:27.419581 localhost.localdomain kernel: usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 18 21:41:27.419739 localhost.localdomain kernel: usb 2-4: Product: USB2.0 Hub
Feb 18 21:41:27.419903 localhost.localdomain kernel: usb 2-4: Manufacturer: GenesysLogic

La quantité de bottes que vous pouvez regarder en arrière peut être consultée avec ce qui suit.

  • journalctl --list-boot

La sortie de journalctl --list-bootressemble à ce qui suit.

 -6 cc4333602fbd4bbabb0df2df9dd1f0d4 Sun 2016-11-13 08:32:58 JST—Thu 2016-11-17 07:53:59 JST
 -5 85dc0d63e6a14b1b9a72424439f2bab4 Fri 2016-11-18 22:46:28 JST—Sat 2016-12-24 02:38:18 JST
 -4 8abb8267e06b4c26a2466562f3422394 Sat 2016-12-24 08:10:28 JST—Sun 2017-02-12 12:31:20 JST
 -3 a040f5e79a754b2a9055ac2598d430e8 Sun 2017-02-12 12:31:36 JST—Sat 2017-02-18 21:31:04 JST
 -2 6c29e3b6f6a14f549f06749f9710e1f2 Sat 2017-02-18 21:31:15 JST—Sat 2017-02-18 22:36:08 JST
 -1 42fd465eacd345f7b595069c7a5a14d0 Sat 2017-02-18 22:51:22 JST—Sat 2017-02-18 23:08:30 JST  
  0 26ea10b064ce4559808509dc7f162f07 Sat 2017-02-18 23:09:25 JST—Sun 2017-02-19 00:57:35 JST
Procyclinsur
la source
4
Tard pour l'OP. Jamais en retard pour les futurs googleurs!
Qian
4

Dans Debian, les dmesgjournaux sont stockés sous la forme:

  • /var/log/dmesg (en direct et non compressé)
  • /var/log/dmesg.0 (dernière session et non compressé)
  • /var/log/dmesg.1.gz (avant-dernier et compressé)
  • /var/log/dmesg.2.gz (antépénultième et compressé)
  • /var/log/dmesg.3.gz (3e du dernier et compressé)
  • /var/log/dmesg.4.gz (4e du dernier et compressé)

Si vous avez des permis, vous pouvez les lire avec cat, moreou lesspour les simples et zcat, zmoreou zlesspour les comprimés

Diego Alonso
la source
Ce n'est pas le cas sur mon debian (testing - stretch, pas particulièrement modifié, à jour à ce jour). Cela peut être lié au fait systemdque dmesg est connecté à systemd (voir la réponse ci-dessous).
Att Righ
Merci pour votre réponse. Maintenant, je connais les mots anglais penultimateetantepenultimate
transang