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

Re: Bash Einzeiler Zeit+Datum letzter Eintrag dmesg



Hallo,

Am Fri, 12 Aug 2011, Frank Lassowski schrieb:
>Folgendes funktioniert, um Zeit und Datum des letzten dmesg-Eintrages zu
>ermitteln:
>
>let lastentry=$(dmesg|tail -n 1|cut -f1 -d"."|cut -c2-|cut -f2 -d" ");let
>boot=$(cut -f1 -d. /proc/uptime);let lastdate=$boot-$lastentry;date -d
>"$lastdate seconds ago"
>
>Ist aber ganz schön lang, und ich ahne, dass awk/sed das kürzer könnten,
>aber die beiden sind was für Gebildete...
>
>Wisst Ihr, wie es kürzer ginge?

lastdate=$(dmesg | awk -F'[][ ]+' 'BEGIN {
        getline < "/proc/uptime";
        uptime = $1;
    }
    END {
        printf("%i\n", uptime - $2);
    }'
)
date -d "$lastdate seconds ago"

Könnte man natürlich noch kompakter und als Einzeiler schreiben.

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

HTH,
-dnh

-- 
Die Software soll die Menschen im Netz formen? Da kommen dann Netzjunkies
raus, die am Fruehstueckstisch "ftp brotkorb" rufen, und erst nach einem
"server ready" eines verstaendnisvollen Tischnachbarn sich zu einem lauten
und vernehmlichen "get broetchen" hinreissen lassen. :-)"     [aus dcoulm]


Reply to: