Odpowiedzi:
Wygląda na to, że został niedawno zaimplementowany do Quantal (12.10): patrz http://brainstorm.ubuntu.com/idea/17829/ .
Zasadniczo, dmesg
jest zgłaszane do nowego przełącznika -T, --ctime
.
Edytować. Jako kolejne rozszerzenie odpowiedzi Ignacio, oto kilka skryptów do zwiększenia wydajności dmesg na starszych systemach.
(Uwaga: w przypadku pokazanego tam kodu pythonowego należy go zastąpić <
i >
wrócić, aby <>
ponownie go użyć).
Wreszcie dla pojedynczej wartości, jaką 600711.395348
można zrobić
ut=`cut -d' ' -f1 </proc/uptime`
ts=`date +%s`
date -d"70-1-1 + $ts sec - $ut sec + 600711.395348 sec" +"%F %T"
i uzyskaj datę i godzinę wydarzenia.
(Należy pamiętać, że z powodu błędów zaokrąglania ostatnia druga cyfra prawdopodobnie nie będzie dokładna).
Edycja (2) : Należy pamiętać, że - zgodnie z komentarzem Womble poniżej - zadziała to tylko wtedy, gdy maszyna nie była zahibernowana itp. (W takim przypadku lepiej przyjrzeć się syslog
konfiguracjom /etc/*syslog*
i sprawdzić odpowiednie pliki. Zobacz także : dmesg vs / var / messages .)
date -d"1970-01-01 + $(date +%s) sec - $(cut -d' ' -f1 </proc/uptime) sec + 600711.395348 sec" +"%F %T.%N %Z"
%Z
powinien być UTC
, ponieważ date +%s
zwraca sekundy od czasu UTC. Musiałby wówczas zostać przekonwertowany na lokalną strefę czasową.
Aby rozszerzyć odpowiedź Ignacio, wpisy w nim zawarte dmesg
są zwykle rejestrowane również w innym miejscu systemu, poprzez syslog, co daje „prawdziwy” znacznik czasu. O ile Ubuntu nie zmieniło domyślnych ustawień Debiana, wpisy w dzienniku powinny się znajdować /var/log/kern.log
.
Czas podany w dmesg jest w sekundach od uruchomienia jądra. Dodaj więc tyle sekund, aż jądro zacznie działać (wskazówka: czas działania).
Na busyboksie powyższa linijka 3 nie działała, więc oto mój sposób, aby ją obliczyć jednorazowo (zamień 1628880.0
na dmesg
znacznik czasu):
perl -e '@a=split(`/proc/uptime`);print scalar(localtime(time()+$a[0] - 1628880.0)."\n");'
Wiem, że to jest już stare, ale dmesg ma teraz wbudowaną opcję -e lub --reatime do wyświetlania czasu w czasie lokalnym.
root@bbs:/var/log# dmesg|tail -1
[50755952.379177] Out of memory in UB 1593: OOM killed process 3183 (sbbs) score 0 vm:747204kB, rss:242764kB, swap:88224kB
root@bbs:/var/log# dmesg -e|tail -1
[Feb20 17:10] Out of memory in UB 1593: OOM killed process 3183 (sbbs) score 0 vm:747204kB, rss:242764kB, swap:88224kB