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

Re: Bash Einzeiler Zeit+Datum letzter Eintrag dmesg



Hallo,

Am Sat, 13 Aug 2011, Rico Koerner schrieb:
>Am 13.08.2011 01:23, schrieb David Haller:
>> date -d "$(dmesg|awk -F'[][ ]+' 'BEGIN{getline<"/proc/uptime";u=$1;}
>> END{printf("%i\n",u-$2);}') seconds ago"
>
>Da muß aber noch ein Fehler drin sein, das Ergebnis liegt in der Zukunft:
>rico@lenny:~$ date -d "$(dmesg|awk -F'[][ ]+'
>'BEGIN{getline<"/proc/uptime";u=$1;} END{printf("%i\n",u-$2);}') seconds
>ago"
>Tue Aug 16 23:55:58 UTC 2011
>rico@lenny:~$ date
>Sat Aug 13 13:36:48 UTC 2011
>
>oder es liegt an der hohen uptime:
>rico@lenny:~$ uptime
> 13:38:15 up 151 days,  2:08,  2 users,  load average: 1.58, 0.87, 0.43
>
>Der letzte Eintrag ist nahe `date`, iptables hat mein Login kurz davor
>geloggt:
>rico@lenny:~$ dmesg | tail -n1
>[13350361.639644] LOG SSH ...
>
>Es könnte ein Überlauf im Zähler sein.

Rechne selber: was steht in /proc/uptime als erster Wert? Wenn der
kleiner als der Zeitstempel in dmesg ist wird's natürlich negativ. Das
liegt aber nicht an meinem Scriptfetzen, sondern an den Werten. Bei
mir grad:

$ date -d "$(dmesg|awk -F'[][ ]+' 'BEGIN{getline<"/proc/uptime";u=$1;} END{printf("%i\n",u-$2);}') seconds ago"
Sat Aug 13 15:59:32 CEST 2011

Als letztes im syslog:
Aug 13 15:59:32 grusum kernel: [12669.836458]

# cat /proc/uptime 
13022.32
# dmesg | tail -1
[12669.836458] [..]

Funktioniert also wie gefordert.

-dnh

-- 
Die Demokratie mag nur ein paar Schritte von der Anarchie entfernt sein,
aber wenigstens ist sie nicht so laut.
                    -- Gekrönt im Sternenlicht, Than Hegemon, n.C. 9843
                    -- Andromeda - 1x10 - All Great Neptune's Ocean


Reply to: