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

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

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

Toute idée comment?

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

Pour dissiper une idée fausse fondamentale, dmesg ne lit pas dans /var/log/dmesg . Il lit directement à partir de la memory tampon du kernel et vous donne les messages N les plus récents. Vers la fin du process de démarrage, dmesg est invoqué pour écrire les messages d'amorçage dans /var/log/dmesg (les versions plus anciennes de ce file étant returnnées de la manière habituelle).

Une fois que le syslog est en cours d'exécution ( syslogd , rsyslogd , syslog-ng , etc.), il lit dans le tampon du kernel et écrit dans un file tel que /var/log/kern.log . (Ceci est pour Debian, les autres systèmes peuvent varier). En supposant que votre système était capable d'écrire sur le disque et de vider les tampons de disque avant qu'il ne s'écrase, c'est là que vous findez les cris mourants du kernel.

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

Dans Debian, les journaux dmesg 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 (3ème depuis le dernier et compressé)
  • /var/log/dmesg.4.gz (4ème depuis le dernier et compressé)

Si vous avez des permis, vous pouvez les lire avec un cat , more ou less pour les plus simples et zcat , zmore ou zless pour les compressés

Bien qu'un peu en retard pour l'OP …

J'utilise Fedora, mais si votre système utilise journalctl vous pouvez facilement get les messages du kernel (dmesg log) à partir d'un shutdown / crash précédent (au format dmesg -T ) à travers ce qui suit.

Options:

  • -k = dmesg
  • -b boot_number = Combien de redémarrages il y a 0, -1, -1, etc.
  • -o courte précision = dmesg -T

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

Commandes:

  • journalctl -o short-precise -k 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

La sortie de ces commands ressemble à ce qui suit.

 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 ssortingngs: 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 visualisée avec ce qui suit.

  • journalctl --list-boot

La sortie de journalctl --list-boot ressemble à 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