Skip to content
Tiantan
Articles

Door mensen leesbare dmesg-tijdstempels op OpenWRT

Geplaatst op februari 17, 2021 door admin

De uitvoer van dmesg toont het aantal seconden + milliseconden sinds het opstarten van het systeem.

[ 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 

V: Hoe zet ik de seconden + milliseconden in een leesbaar formaat?

Mijn 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 

Het is niet mogelijk util-Linux te installeren, omdat er niet veel beschikbare ruimte is:

[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 

Reacties

  • Wat noem je een ‘ leesbaar ‘ format?
  • Ik ‘ ben bang dat je ‘ waarschijnlijk uit bent veel geluk dan. Als uw systeem de kerneluitvoer logt in een soort logboek (bijvoorbeeld naar /var/log/syslog op Debian-systemen, controleer dan dat logboek; het kan dezelfde informatie bevatten maar met leesbare tijdstempels .
  • ‘ leesbaar ‘ als mens leesbare datum-tijdstempel, zoals je hebt uitgelegd voor de ‘ -T ‘ arg.
  • Hmm, dit wordt zeer complex aangezien u geen ‘ toegang schijnt te hebben tot iets met datamanipulatiemogelijkheden. Je date commando ondersteunt de -d vlag niet, toch? En ook geen python denk ik? Welke awk implementatie is dit? Is het GNU awk tenminste?
  • Cool, als je date -d hebt, zou mijn bijgewerkte antwoord moeten werken.

Antwoord

Ik denk dat wat je “zoekt is -T zoals gedocumenteerd in man dmesg:

-T, –ctime

Afdrukken door mensen leesbare tijdstempels. Het tijdstempel kan onnauwkeurig zijn!

De tijdbron die voor de logboeken wordt gebruikt, wordt niet bijgewerkt nadat het systeem is onderbroken / hervat.

Dus bijvoorbeeld:

[ 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 

Wordt:

[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 

Ik vond een coole truc hier . De sed -expressie die daar werd gebruikt, was verkeerd omdat deze mislukte als er meer dan één ] in de dmesg regel Ik heb het aangepast om te werken met alle gevallen die ik in mijn eigen gevallen heb gevonden dmesg uitvoer. Dit zou dus moeten werken ervan uitgaande dat uw date zich gedraagt zoals verwacht:

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 

Uitvoer ziet er als volgt uit:

[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 

Reacties

  • we kunnen ook -T alleen vlaggen toevoegen ondersteuning voor util-linux-ng-2.20.x en hoger, dus het ondersteunt Ubuntu 12.04 en hoger en niet in CentOS / RHEL 6.3 en lager
  • I ‘ gebruik dmesg al jaren en ik hoorde nu pas over deze vlag. Waarom heeft niemand me dat verteld? : D
  • @MartinvonWittich hier hetzelfde, ik heb de man-pagina vandaag voor het eerst gelezen 🙂
  • sorry, ‘ t zei dit van tevoren dat ik openwrt gebruik.
  • Voor de goede orde: net zoals dmesg -T doet, toont het script in het antwoord ook de verkeerde tijd tijdens de winterslaap.

Antwoord

jouw versie van dmesg is duidelijk niet de volledige -volledige versie van util-linux maar wordt in plaats daarvan geleverd door busybox.

busybox biedt de basis van een veelvoud aan hulpprogrammas, maar het biedt niet “al hun handige functies.

als je de vlag zoals (terecht) voorgesteld door terdon, moet u het dmesg binaire bestand gebruiken dat wordt geleverd door 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 $ 

Geschreven door admin

Geef een reactie Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Meest recente berichten

  • Met behulp van een balun met een resonerende dipool
  • Wat is het verschil tussen “ kan niet ” en “ kan niet ”? [duplicate]
  • Kunt u zich bij JFK op binnenlandse vluchten tussen terminals aan de airside verplaatsen?
  • “ Zeer gewaardeerd ” of “ zeer gewaardeerd ”
  • Wat betekent ' abstracte ideeën '? [gesloten]

Archief

  • februari 2021
  • januari 2021
  • december 2020
  • november 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Auteursrecht Tiantan 2021 | Thema door Theme in Progress | Mogelijk gemaakt door WordPress

Naar boven