Skip to content
Tiantan
Articles

Horodatage dmesg lisible par lhomme sur OpenWRT

On février 17, 2021 by admin

La sortie de dmesg montre le nombre de secondes + millisecondes depuis le démarrage du système.

[ 10.470000] ohci_hcd: USB 1.1 "Open" Host Controller (OHCI) Driver [ 14.610000] device eth0 entered promiscuous mode [ 18.750000] cfg80211: Calling CRDA for country: DE [ 18.750000] cfg80211: Regulatory domain changed to country: DE 

Q: Comment mettre les secondes + millisecondes dans un format lisible?

Mon dmesg:

[email protected]:/tmp# dmesg -h dmesg: invalid option -- h BusyBox v1.19.4 (2013-03-14 11:28:31 UTC) multi-call binary. Usage: dmesg [-c] [-n LEVEL] [-s SIZE] Print or control the kernel ring buffer -c Clear ring buffer after printing -n LEVEL Set console logging level -s SIZE Buffer size 

Installer util-Linux ne sera pas possible, car il ny a pas beaucoup despace disponible:

[email protected]:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 1.1M 956.0K 132.0K 88% / /dev/root 2.0M 2.0M 0 100% /rom tmpfs 14.3M 688.0K 13.6M 5% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock3 1.1M 956.0K 132.0K 88% /overlay overlayfs:/overlay 1.1M 956.0K 132.0K 88% / 

.

[email protected]:/tmp# which awk perl sed bash sh shell tcsh /usr/bin/awk /bin/sed /bin/sh [email protected]:~# date -h date: invalid option -- h BusyBox v1.19.4 (2013-03-14 11:28:31 UTC) multi-call binary. Usage: date [OPTIONS] [+FMT] [TIME] Display time (using +FMT), or set time [-s,--set] TIME Set time to TIME -u,--utc Work in UTC (don"t convert to local time) -R,--rfc-2822 Output RFC-2822 compliant date string -I[SPEC] Output ISO-8601 compliant date string SPEC="date" (default) for date only, "hours", "minutes", or "seconds" for date and time to the indicated precision -r,--reference FILE Display last modification time of FILE -d,--date TIME Display TIME, not "now" -D FMT Use FMT for -d TIME conversion -k Set Kernel timezone from localtime and exit 

Commentaires

  • Quest-ce que vous appelez un ‘ lisible ‘ format?
  • Jai ‘ peur que vous ‘ ne soyez probablement plus de chance alors. Si votre système enregistre la sortie du noyau dans une sorte de journal (par exemple dans /var/log/syslog sur les systèmes Debian, vérifiez ce journal; il peut contenir les mêmes informations mais avec des horodatages lisibles .
  • ‘ lisible ‘ comme humain horodatage lisible, comme vous lavez expliqué pour le ‘ -T ‘ arg.
  • Hmm, ce sera très complexe puisque vous ne semblez pas ‘ avoir accès à tout ce qui a des capacités de manipulation de date. Votre commande date ne prend pas en charge lindicateur -d, nest-ce pas? Et pas de python non plus je suppose? De quelle awk implémentation sagit-il? Est-ce GNU awk au moins?
  • Cool, si vous avez date -d, ma réponse mise à jour devrait fonctionner.

Réponse

Je pense que ce que vous « cherchez est -T comme documenté dans man dmesg:

-T, –ctime

Imprimer horodatages lisibles par lhomme. Lhorodatage peut être inexact!

La source de temps utilisée pour les journaux nest pas mise à jour après le SUSPEND / RESUME du système.

Par exemple:

[ 518.511925] usb 2-1.1: new low-speed USB device number 7 using ehci-pci [ 518.615735] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002 [ 518.615742] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 518.615747] usb 2-1.1: Product: USB Keykoard 

Devient:

[Mon Jan 27 16:22:42 2014] hid-generic 0003:1C4F:0002.0007: input,hidraw0: USB HID v1.10 Keyboard [USB USB Keykoard] on usb-0000:00:1d.0-1.1/input0 [Mon Jan 27 16:22:42 2014] input: USB USB Keykoard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input24 [Mon Jan 27 16:22:42 2014] hid-generic 0003:1C4F:0002.0008: input,hidraw1: USB HID v1.10 Device [USB USB Keykoard] on usb-0000:00:1d.0-1.1/input1 

Jai trouvé un truc sympa ici . Le sed lexpression utilisée était erronée car elle échouait lorsquil y avait plus dun ] dans le dmesg ligne. Je lai modifiée pour quelle fonctionne avec tous les cas que jai trouvés dans le mien dmesg sortie. Donc, cela devrait fonctionner en supposant que votre date se comporte comme prévu:

base=$(cut -d "." -f1 /proc/uptime); seconds=$(date +%s); dmesg | sed "s/\]//;s/\[//;s/\([^.]\)\.\([^ ]*\)\(.*\)/\1\n\3/" | while read first; do read second; first=`date +"%d/%m/%Y %H:%M:%S" --date="@$(($seconds - $base + $first))"`; printf "[%s] %s\n" "$first" "$second"; done 

Le résultat ressemble à:

[27/01/2014 16:14:45] usb 2-1.1: new low-speed USB device number 7 using ehci-pci [27/01/2014 16:14:45] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002 [27/01/2014 16:14:45] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [27/01/2014 16:14:45] usb 2-1.1: Product: USB Keykoard 

Commentaires

  • nous pouvons également ajouter des indicateurs -T uniquement prise en charge de util-linux-ng-2.20.x et supérieur, il prendra donc en charge Ubuntu 12.04 et supérieur et non dans CentOS / RHEL 6.3 et inférieur
  • I ‘ jutilise dmesg depuis des années et je nai appris lexistence de cet indicateur que maintenant. Pourquoi personne ne ma dit ça? : D
  • @MartinvonWittich même ici, je viens de lire la page de manuel pour la première fois aujourdhui 🙂
  • désolé, didn ‘ t Jai dit cela à lavance que jutilise openwrt.
  • Juste pour mémoire: tout comme dmesg -T le fait, le script dans la réponse indique également une mauvaise heure lors de la mise en veille prolongée.

Réponse

votre version de dmesg nest évidemment pas complète -fledged one from util-linux mais est fourni à la place par busybox.

busybox fournit les bases dune multitude dutilitaires, mais il ne fournit pas toutes leurs fonctionnalités intéressantes.

si vous souhaitez utiliser le -T comme (à juste titre) suggéré par terdon, vous devrez utiliser le binaire dmesg fourni par util-linux

[email protected]:/tmp$ busybox sh BusyBox v1.21.1 (Debian 1:1.21.0-1) built-in shell (ash) Enter "help" for a list of built-in commands. /tmp $ dmesg -T dmesg: invalid option -- "T" BusyBox v1.21.1 (Debian 1:1.21.0-1) multi-call binary. Usage: dmesg [-c] [-n LEVEL] [-s SIZE] Print or control the kernel ring buffer -c Clear ring buffer after printing -n LEVEL Set console logging level -s SIZE Buffer size /tmp $ /bin/dmesg -T | tail -5 [Mon Jän 27 13:37:24 2014] hid-generic 0003:046D:C03E.0006: input,hidraw2: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:1d.0-1.8/input0 [Mon Jän 27 15:59:32 2014] NVRM: API mismatch: the client has the version 304.117, but [Mon Jän 27 15:59:32 2014] NVRM: this kernel module has the version 304.116. Please [Mon Jän 27 15:59:32 2014] NVRM: make sure that this kernel module and all NVIDIA driver [Mon Jän 27 15:59:32 2014] NVRM: components have the same version. /tmp $ 

Written by admin

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles récents

  • En utilisant un balun avec un dipôle résonnant
  • Quelle est la différence entre “ ne peut pas ” et “ ne peut pas ”? [dupliquer]
  • “ Profondément apprécié ” ou “ très apprécié ”
  • Que signifie ' idées abstraites '? [fermé]
  • Pourquoi ' t je ne devrais pas utiliser le cryptage ECB?

Archives

  • février 2021
  • janvier 2021
  • décembre 2020
  • novembre 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Copyright Tiantan 2021 | Theme by Theme in Progress | Proudly powered by WordPress

Back to top