Mittwoch, 31. Oktober 2007, 18:49 Uhr

Arbeitszeiterfassung mit Log-Dateien von Mac OS X

Wer kennt es nicht – da hat man in einer Teilzeitanstellung letzte Woche am Donnerstag gearbeitet und sollte nun gelegentlich einmal den Stundenrapport ausfüllen. Wie immer lässt einem das Gedächtnis im Stich, wenn es darum geht, den Arbeitsbeginn und -ende auf die Minute genau zu eruieren. Und schliesslich wäre da ja noch die Mittagspause …

Als äusserst pflichtbewusster Arbeitnehmer habe ich hierzu zwei Methoden entwickelt, die die Zeitabrechnung zum Klacks machen:

Erster Methode ist ganz nett – sofern man die Plazer.app auch wirklich nonstop laufen lässt. Als Fallback gibt es deshalb noch das system.log von Mac OS X.

Anwendungsbeispiele

a) Kaltstart

$ cat /var/log/system.log | grep "Oct 25" | grep "hi mem tramps"
...
Oct 25 08:48:57 localhost kernel[0]: hi mem tramps at 0xffe00000
...

b) Aufwachen aus dem Schlafmodus

Ich habe letzten Donnerstag in Zürich gearbeitet und den Laptop bei der Ankunft am Arbeitsplatz aus dem Schlafmodus geweckt:

$ cat /var/log/system.log | grep "Oct 25" | grep "System SafeSleep"
...
Oct 25 08:48:57 MACBOOK kernel[0]: System SafeSleep
...

c) Bildschirmsperre

Für das Mittagessen habe ich das Login Window eingeschaltet, damit während meiner Abwesenheit niemand in meinem Account rumfuhrwerken kann:

$ cat /var/log/system.log | grep "Oct 25" | grep "Login Window Started"
...
Oct 25 11:53:45 MACBOOK loginwindow[1383]: Login Window Started Security Agent
...

Leider hat sich der Laptop während dem Mittagessen nicht in den Schlafmodus begeben, weil ich das Gerät an der Steckdose angeschlossen hatte. Auch Plazes meldet keine Aktivität. Mist! Da ich um 13.22 Uhr ein Mail losgeschickt habe, muss ich spätestens zu diesem Zeitpunkt wieder im Büro gewesen sein.

d) Aktivierung Schlafmodus

An Feierabend schlussendlich habe das Gerät wieder in den Schlafmodus versetzt. Dieses Mal zeigte dies folgende Meldung an:

$ cat /var/log/system.log | grep "Oct 25" | grep "hibernate image path"
...
Oct 25 17:05:32 MACBOOK kernel[0]: hibernate image path: /var/vm/sleepimage/
...

e) Herunterfahren

$ cat /var/log/system.log | grep "Nov  6" | grep "hutdown: halt by"
...
Nov  6 17:59:35 MACBOOK-2 shutdown: halt by mario:
...

Andere Hinweise können beispielsweise auch die Netzwerkschnittstellen geben: eth0 wird beim Aufwachen hochgefahren.

Mitarbeiter physisch präsent, geistig abwesend

Nun bleibt eigentlich nur noch zu hoffen, dass ich meine Arbeitszeit auch vollumfänglich zum Wohle des Arbeitgebers eingesetzt habe … und nicht etwa über Britney Spears nicht-existente Unterwäsche gebloggt oder sonstigen Zeitvertrieb nachgegangen bin.

Tags:
Labels: Apple, Arbeit

2 Kommentare Kommentare

info sagt:

Seit 10 Jahren träume ich als Einzelkämpfer am Bildschirmarbeitsplatz von einer Zeiterfassungslösung die wirklich automatisiert abläuft.

Nach wie vor werden die Möglichkeiten des Computers nicht wirklich 100ig genutzt. Was nützt mir ein Zeiterfassungsprogramm, wenn ich am Ende wieder händisch die Start- und Stopptaste des Timers drücken muss. Von Chaos im täglichen Arbeitseinsatz und damit auch einem einhergehenden Unvermögen sich auf diese Nebensächlichkeit zu konzentrieren, haben all diese Zeiterfassungsprogrammprogrammier wohl nichts vernommen.

Warum werden eben nicht die Log-Dateien eines Betriebssystems ausgewertet. Wann war welche Applikation der Hauptprozess und somit in der Anwendung. Wann wurde die Maus und/oder die Tastatur bedient. Welche Datei wurde gerade bearbeitet. Ich bin kein OS Hardcore-Coder, aber diese Infos liefert sicherlich das Betriebssystem, es weiß doch ständig, was gerade passiert.

Bisher konnte ich noch keine solche Lösung bequeme Lösung entdecken. Schade.

eMeidi sagt:

@info: Schau dir mal Slife an … Ist insofern keine automatisierte Lösung, als dass du weiterhin manuell auswerten musst, wann die Arbeit begonnen hat – aber besser als nichts.

Ich benutze übrigens eine Lösung aus selbergebasteltem Cronjob-ruft-AppleScript-auf-und-sendet-Daten-an-Server, wobei Daten die aktive Applikation, den Titel des aktiven Fensters und die Position des Maus-Zeigers enthält.

Kommentar erfassen