A saída do dmesg mostra o número de segundos + milissegundos desde o início do 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: Como colocar os segundos + milissegundos em um formato legível?
Meu 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
Instalar o util-Linux não será possível, porque não há muito espaço disponível:
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
nos sistemas Debian, verifique esse log; ele pode conter as mesmas informações, mas com registros de data e hora legíveis.date
comando não suporta a-d
bandeira, certo? E nenhum python, eu acho? Queawk
implementação é essa? ÉGNU awk
pelo menos?date -d
, minha resposta atualizada deve funcionar.Respostas:
Eu acho que o que você está procurando é
-T
como documentado emman dmesg
:Então, por exemplo:
Torna-se:
Encontrei um truque legal aqui . A
sed
expressão usada estava errada, pois falharia quando havia mais de uma]
nadmesg
linha. Eu o modifiquei para trabalhar com todos os casos que encontrei na minha própriadmesg
saída. Portanto, isso deve funcionar assumindo que seudate
comportamento seja o esperado:A saída se parece com:
fonte
-T
bandeiras suportam apenas parautil-linux-ng-2.20.x
e superior, por isso vai apoiar Ubuntu 12.04 e superior e não no CentOS / RHEL 6.3 e abaixardmesg
há anos e só aprendi sobre essa bandeira agora. Por que ninguém me disse isso? : Ddmesg -T
o script na resposta também mostra a hora errada durante a hibernação.sua versão
dmesg
obviamente não é a versão completa,util-linux
mas é fornecida porbusybox
.busybox
fornece o básico de vários utilitários, mas não fornece todos os recursos interessantes.se você quiser usar o
-T
sinalizador como (corretamente) sugerido por terdon, precisará usar odmesg
binário fornecido porutil-linux
fonte