La salida de dmesg muestra el número de segundos + milisegundos desde el inicio del sistema.
[ 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
P: ¿Cómo poner los segundos + milisegundos en un formato legible?
Mi dmesg:
root@OpenWrt:/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
Para instalar util-Linux no será posible, porque no hay mucho espacio disponible:
root@OpenWrt:~# 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% /
.
root@OpenWrt:/tmp# which awk perl sed bash sh shell tcsh
/usr/bin/awk
/bin/sed
/bin/sh
root@OpenWrt:~# 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
/var/log/syslog
en los sistemas Debian, verifique ese registro; puede contener la misma información pero con marcas de tiempo legibles.date
comando no es compatible con la-d
bandera, ¿verdad? ¿Y tampoco python, supongo? ¿Quéawk
implementación es esta? ¿EsGNU awk
al menos?date -d
, mi respuesta actualizada debería funcionar.Respuestas:
Creo que lo que estás buscando está
-T
documentado enman dmesg
:Así por ejemplo:
Se convierte en:
Encontré un truco genial aquí . La
sed
expresión utilizada allí era incorrecta ya que fallaría cuando hubiera más de uno]
en ladmesg
línea. Lo modifiqué para que funcione con todos los casos que encontré en mi propiadmesg
salida. Entonces, esto debería funcionar asumiendo que sedate
comporta como se esperaba:La salida se ve así:
fuente
-T
banderas solo admitenutil-linux-ng-2.20.x
y superiores, por lo que admitirá Ubuntu 12.04 y superior y no en CentOS / RHEL 6.3 y versiones inferioresdmesg
durante años y solo aprendí sobre esta bandera ahora. ¿Por qué nadie me dijo eso? : Ddmesg -T
hace, el script en la respuesta también muestra un tiempo incorrecto al hibernar.su versión de
dmesg
obviamente no es la completa,util-linux
sino que es proporcionada porbusybox
.busybox
proporciona los conceptos básicos de una multitud de utilidades, pero no proporciona todas sus características ingeniosas.si desea usar la
-T
bandera como (correctamente) sugerida por terdon, deberá usar eldmesg
binario proporcionado porutil-linux
fuente