Computernutzungsstatistik [gefunden / gelöst]

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Sigi44

Computernutzungsstatistik [gefunden / gelöst]

Beitrag von Sigi44 » 02.06.2006 17:46:23

Bevor ich das Rad zum zweiten Mal erfinde:

Gibt es schon ein Skript/Programm, welches loggt, wann der lokale Schreibtisch-Rechner eingeschaltet wurde und wann er wieder ausgeschaltet wurde (das habe ich auch schon selbst hinbekommen), wie lange er also lief, und aus diesem Logbuch dann auch noch eine schöne Übersicht (durchschnittliche Tageslaufzeiten, Sitzungszahlen, Monatssummen etc.), evtl. sogar mit Grafen (z.B. wie Webalizer) erstellt?

Möchte nämlich gerne wissen, wieviele Jahre ich in meinem Leben vor dieser Kiste gesessen habe :lol:
Zuletzt geändert von Sigi44 am 07.06.2006 19:36:59, insgesamt 1-mal geändert.

Methusalix

Computernutzungsstatistik

Beitrag von Methusalix » 02.06.2006 18:51:53

Hallo,
ob es so ein Skript schon gibt, weiß ich nicht. So was läßt sich aber bestimmt basteln.
Mit der Auswertung von uptime und der Umleitung in eine Date und nachfolgender
Filterung wäre das z.B. möglich.
Außerdem ist

Code: Alles auswählen

man wtmp
hilfreich. Siehe dazu auch die Ausgabe von Gruß
Matthias

Sigi44

Lösung

Beitrag von Sigi44 » 07.06.2006 19:33:59

Also habe ich es wie folgt gelöst:

Folgendes Skript "anschalten_loggen" nach /etc/init.d kopieren, ausführbar machen und den Link /etc/rcS.d/S85anschalten_loggen auf dieses Skript erstellen:

Code: Alles auswählen

#!/bin/sh
# anschalten_loggen

# Schreibt die Zahl der Sekunden seit 1970
# beim Booten in die Logdatei
# und den Namen der Logdatei in eine Temp-Datei
# (da der Name den Monat enthaelt und daher bei
# Monatswechsel sich aendert)

LOGDATEI="/var/log/computernutzung.$(date +%Y-%m).log"

echo "$LOGDATEI" > /tmp/computernutzungslogdatei.txt

SEK70=$(date +%s)

# -n  ->  keinen Zeilenvorschub am Ende der Zeile
# -e  ->  Interpretation von \n als Zeilenvorschub
echo -n -e "\n$SEK70" >> $LOGDATEI
Folgendes Skript "ausschalten_loggen" nach /etc/init.d kopieren, ausführbar machen und die Links /etc/rc0.d/K30ausschalten_loggen sowie /etc/rc6.d/K30ausschalten_loggen auf dieses Skript erstellen:

Code: Alles auswählen

#!/bin/sh
# ausschalten_loggen

# Schreibt die Zahl der Sekunden seit 1970
# beim Ausschalten oder Neustarten in eine Logdatei

TEMPDATEI="/tmp/computernutzungslogdatei.txt"

if [ ! -r $TEMPDATEI ]; then
        echo "Kann Temp-Datei $TEMPDATEI nicht lesen."
        exit 1
fi

LOGDATEI=$(cat $TEMPDATEI)

# Temp-Datei löschen
if [ -w $TEMPDATEI ]; then
        rm $TEMPDATEI
fi

# LOGDATEI leer ?
if [ -z $LOGDATEI ]; then
        echo "Habe keinen Logdateinamen."
        exit 1
fi

# LOGDATEI schreibbar?
if [ ! -w $LOGDATEI ]; then
        echo "Log-Datei \"$LOGDATEI\" ist nicht schreibbar."
        exit 1
fi

#######################################
# Dann kann's ja endlich losgehen!

SEK70=$(date +%s)

echo -n \,$SEK70 >> $LOGDATEI
Obige beiden Skripte führen das Logbuch: In jeder Zeile des Logbuches findet sich die Anschaltzeit, ein Komma, und dann die Abschaltzeit, jeweils gemessen in Sekunden seit 1970 (Unix-Zeit).

Und dann gibt es noch dieses Python-Skript für eine Rechnernutzungsstatistik, basierend auf dem o.g. Logbuch. Auf der Seite sind auch alle anderen Informationen dieses Beitrages enthalten.

Wäre natürlich interessant, wenn noch andere Lösungswege hier genannt würden (z.B. Grafen o.ä.).

Gruß, Sigi

Antworten