Skip to content
Tiantan
Articles

Ember által olvasható dmesg időbélyegek az OpenWRT-n

On február 17, 2021 by admin

A dmesg kimenete a másodperc + ezredmásodpercek számát mutatja a rendszer indítása óta.

[ 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 

K: Hogyan állítsam a másodperceket + ezredmásodperceket olvasható formátumba?

Saját 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 

A util-Linux telepítése nem lesz lehetséges, mert nincs sok szabad hely:

[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 

Megjegyzések

  • Mit nevezel ‘ olvashatóként ‘ formátum?
  • Én ‘ attól félek, hogy ‘ valószínűleg kint vagy Ha a rendszere valamilyen naplóba naplózza a kernel kimenetét (például /var/log/syslog a Debian rendszereken, ellenőrizze ezt a naplót; ugyanazokat az információkat tartalmazhatja, de olvasható időbélyegzőkkel .
  • ‘ olvasható ‘ emberként olvasható dátum-időbélyegző, mint ahogy azt a ‘ -T ‘ argonhoz magyarázta.
  • Hmm, ez lesz nagyon bonyolult, mivel úgy tűnik, hogy

nem férhet hozzá bármihez, dátummanipulációs képességekkel. Adateparancsod nem támogatja a-djelzőt, igaz? És nincs piton sem, azt hiszem? Melyikawkmegvalósítás ez? LegalábbGNU awk?

  • Jó, ha van date -d, akkor a frissített válaszomnak működnie kell.
  • Válasz

    Úgy gondolom, hogy amit keres, az -T a man dmesg dokumentumban leírtak szerint:

    -T, –time

    Nyomtatás emberi olvasható időbélyegek. Az időbélyeg pontatlan lehet!

    A naplókhoz használt időforrás a SUSPEND / RESUME rendszer után nem frissül.

    Tehát például:

    [ 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 

    Lesz:

    [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 

    Itt találtam egy jó trükköt . Az ott használt id = “032e33b7f4”>

    kifejezés téves volt, mivel akkor fog kudarcot vallani, ha egynél több]van admesgvonal. Módosítottam úgy, hogy minden saját esetemben működjöndmesgkimenet. Tehát ennek akkor kell működnie, ha adatea várt módon viselkedik:

    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 

    A kimenet a következőképpen néz ki:

    [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 

    Megjegyzések

    • felvehetünk, csak -T jelölőket a util-linux-ng-2.20.x és újabb verziók támogatása, így az Ubuntu 12.04-es és újabb verzióit fogja támogatni, a CentOS / RHEL 6.3-as és újabb verzióiban nem.
    • I ‘ évek óta használja a dmesg -et, és csak most tudtam meg erről a zászlóról. Miért nem mondta nekem ezt senki? : D
    • @MartinvonWittich ugyanez itt, csak ma olvastam először a man oldalt 🙂
    • sajnálom, nem ‘ t ezt előre elmondtam, hogy az openwrt-t használom.
    • Csak a megjegyzés céljából: ahogy dmesg -T, a válaszban szereplő szkript hibernált állapotban is rossz időt mutat.

    Válasz

    a dmesg verziója nyilvánvalóan nem teljes -az alapú util-linux, de ehelyett a busybox szolgáltatja.

    busybox a segédprogramok sokaságának alapjait biztosítja, de nem biztosítja az összes remek funkciójukat.

    ha a jelzőt, amint azt Terdon javasolja (helyesen), a dmesg binárisat kell használni, amelyet az 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

    Vélemény, hozzászólás? Kilépés a válaszból

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

    Legutóbbi bejegyzések

    • Rezonáns dipólusú balun használatával
    • Mi a különbség “ nem ” és “ nem ? [duplicate]
    • A JFK-n tud-e mozogni a belföldi járatokon a terminálok repülőtere között?
    • “ Mélyen értékelik ” vagy “ nagyra értékelik ”
    • Mit jelent az ' elvont ötletek '? [zárt]

    Archívum

    • 2021 február
    • 2021 január
    • 2020 december
    • 2020 november
    • 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