[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bash Einzeiler Zeit+Datum letzter Eintrag dmesg



Moin!

Am 13.08.2011 21:03, Rico Koerner schrub:

> ~# uptime; tail -n 1 /var/log/syslog; dmesg | tail -n1; cat
> /proc/uptime; date -d "$(dmesg|awk -F'[][ ]+'
> 'BEGIN{getline<"/proc/uptime";u=$1;} END{printf("%i\n",u-$2);}') seconds
> ago"
>  20:36:40 up 48 days, 23:36,  1 user,  load average: 0.14, 0.05, 0.01
> Aug 13 20:36:40 srv12 kernel: [4231643.034000] ...
> [4231643.034000] ...
> 4232178.03 33734620.97
> Sat Aug 13 20:27:46 CEST 2011
> 
> Nach 48 Tagen Uptime hab ich hier eine Abweichung von ca. 9 min. Diesmal
> liegt der Wert leicht in der Vergangenheit und fällt damit nicht gleich auf.

Bei mir sind's nach 91 Tagen uptime 9 *Sekunden*, auf einem anderen
Rechner nach 71 Tagen uptime 5 *Sekunden*!
Kann es sein, dass da ticks und (nicht synchronisierte) Uhrzeit irgendwie
aneinandergeraten?

Ich habe den Kram mit sed noch verändert, jetzt ist es egal, wie viele
Leerzeichen vor der Zeit stehen, und Lenny, Squeeze und Wheezy liefern mit
der bash das gleiche Ergebnis:

let lastentry=$(dmesg | sed -e '$!d' -e 's/\..*//'
-e 's/^[^0-9]*//');let boot=$(sed 's/\..*//' /proc/uptime);
let lastdate=$boot-$lastentry;date -d "$lastdate seconds ago"

Gruß
Frank


Reply to: