Ich suche nach einer einfachen Methode, um die ungefähre Zeit zu bestimmen, die ich pro Tag an einem Computer verbringe. Dies kann eine schwierige Aufgabe sein, wenn Sie versuchen, Prozesse, Tastendrücke, Mausklicks und ähnliches zu überwachen, da Sie nicht nur über ein Codierungsproblem nachdenken, sondern auch einen Webartikel lesen, telefonieren oder mit dem Computer loslegen können Hund. Der Computer kann meine Gedanken nicht lesen. Da ich die Computer rund um die Uhr überwacht habe, funktionieren Anmeldungen nicht.
Ich bin auf die Idee gekommen, zu protokollieren, wie viel Zeit der Computer im Bildschirmschoner-Modus verbringt. Mein Fehler wäre dann nicht größer als das Produkt der Leerlaufzeit bis zum Bildschirmschoner mit der Häufigkeit, mit der er in den Bildschirmschoner-Modus wechselt. Wenn ich diesen Wert von 24 Stunden abziehe, erhalte ich eine Schätzung, die für meine Zwecke angemessen wäre.
Das Problem ist: Ich weiß nicht, wie ich mich anmelden soll, wenn der Bildschirmschoner ein- und ausgeschaltet wird. Momentan starte ich Ubuntu 10.10 auf den meisten Rechnern und werde auf einigen bald ein Upgrade auf 11.04 durchführen.
Irgendwelche Ideen?
[edit] Nachdem ich weiter gegoogelt habe, bin ich auf den Dbus-Monitor gestoßen, der so aussah, als würde er funktionieren, aber eine wichtige Zutat fehlt. Hier ist das Skript, das ich ausführe und das den Monitor als Daemon startet:
#!/bin/bash
RUNNING=`ps -A | grep "dbus-monitor"`
if [ ! $RUNNING ]; then
echo "(Re)starting dbus-monitor daemon"
nohup dbus-monitor "--profile" "type='signal',interface='org.gnome.ScreenSaver'" >> ${HOME}/sc.log &
fi
Hier ist die Ausgabe, die nach mehrmaligem Sperren und Entsperren des Bildschirms erzeugt wird:
sig 1304860712 153829 2 /org/freedesktop/DBus org.freedesktop.DBus NameAcquired
sig 1304860717 318732 462 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304860725 547928 463 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304861018 17 464 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304862919 403523 466 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
Die zweite Spalte ist offensichtlich Unix UTC in Sekunden. Die fehlende Zutat ist, dass nicht festgestellt werden kann, ob der Bildschirmschoner aktiviert oder deaktiviert ist! Ich nehme an, ich könnte annehmen, dass sie ab dem Zeitpunkt, an dem NameAcquired auftritt, umschalten, aber es macht mich nervös, dass ein fehlendes oder zusätzliches Ereignis, das ich nicht vorhersagen kann, alles aus der Synchronität bringen würde.
Sehr verpflichtet für Ideen.
jkcunningham
quelle
Antworten:
Ich möchte mich bedanken und ein einfaches, unformatiertes Skript (das verbessert werden kann) zurückgeben. Legen Sie es in Startanwendungen mit:
Es ist auch ein Systemabsturz / Blackout vorbereitet. Es ist nicht schwer getestet ... aber es funktioniert bis jetzt großartig. Es werden 2 Dateien erstellt, eine bei $ HOME (das Protokoll) und eine andere bei / tmp (die Abhilfemaßnahme für den Systemabsturz).
logSessionLock.sh
Das Protokoll sieht folgendermaßen aus:
quelle
Das " Workrave " -Paket verfolgt nicht nur, ob Sie Ihren Computer benutzen und hilft Ihnen, tagsüber Pausen einzulegen , sondern bietet auch eine Reihe nützlicher Statistiken, sowohl als Rohdaten (in einer Textdatei) als auch über eine grafische Benutzeroberfläche (
Daily usage: 5:41:00 for Jul 21
). Die Statistiken enthalten auch Informationen wie Minuten der Mausbenutzung, Mausbewegungsentfernung, Tastenanschläge usw.Installieren Sie es aus den offiziellen Repositories, fügen Sie es Ihrer Menüleiste hinzu, klicken Sie mit der rechten Maustaste und wählen Sie "Statistik". Sie erhalten einen Kalender, in dem Sie den Tag auswählen können, über den Sie wissen möchten. Oder schauen Sie sich die Daten in ~ / .workrave / historystats an
quelle
Wenn Sie das --profile entfernen, wird ein Format ohne Zeitstempel angezeigt, das jedoch angibt, ob der Bildschirmschoner aktiv ist oder nicht.
Ich habe eine Modifikation dieses PHP-Skripts verwendet, um Dinge basierend auf meinem Bildschirmschoner zu aktivieren oder zu deaktivieren
Die andere Option ist zu verwenden
gnome-screensaver-command --query
. Mit crontab lasse ich Bitcoin alle 4 Kerne verwenden, wenn der Bildschirmschoner aktiv ist, aber er erhält nur 1 Kern, wenn ich meinen Computer verwende.ANZEIGE: Ohne die Einstellung ANZEIGE kann der gnome-screensaver-Befehl den Bildschirm nicht finden, wenn er von cron ausgeführt wird. Dies muss als derselbe Benutzer ausgeführt werden, der angemeldet ist.
2>&1
: Hiermit werden Fehler in die Standardausgabe geleitet, die von ...| grep -q 'is active';
: das -q macht das grep leise, es gibt nichts aus. Der Befehl gibt jedoch einen Erfolg oder Fehler zurück, der von if verwendet wird.Mir ist klar, dass keine dieser Lösungen eine vollständige Lösung darstellt, aber hoffentlich sind sie genug, um Ihnen den Einstieg zu erleichtern.
quelle
Dies ist ein vollständigeres Skript. Sie können es jede Minute von cron aus auslösen. Wenn der Bildschirmschoner aktiv ist, wird aufgezeichnet, wie lange er aktiv war. Sobald es deaktiviert ist, wird die letzte Messung durchgeführt und zu ~ / Screensaver.log hinzugefügt. Wenn Sie es von cron ausführen, kann es bei jeder Deaktivierung des Bildschirmschoners bis zu 59 Sekunden lang ungenau sein.
quelle
date "+%Y %m %d %H %M
Echo "$ SS_LAG $ DSTR" >> $ {HTDOCS} /data/work.log fidate "+%Y %m %d %H %M
echo "$ SS_LAG $ DSTR" >> $ {HTDOCS} /data/work.log fi [/ code] Ich gebe: Wie erstellt man einen Codeblock in einem Kommentar? 4 Felder funktionieren nicht.Ich benutze den
uptime
Befehl, aber er gibt nicht die Aktiv / Inaktiv-Zeit des Systems an. Uptime gibt eine einzeilige Anzeige der folgenden Informationen. Die aktuelle Uhrzeit, die Laufzeit des Systems, die Anzahl der aktuell angemeldeten Benutzer und der durchschnittliche Ladevorgang des Systems in den letzten 1, 5 und 15 Minuten.quelle