Automatic reporting of worktime

Some time ago I used gtimelog to keep track of my working time. I added an entry when I arrived in the morning and an entry when I left work in the evening. But quite often I forgot to add an entry and after a while I stopped keeping track of how much I worked.

Tracking login and logout times could be confusing, but normally I turn my work station off when I’m leaving work. So if I keep track of it’s uptime during a week I (almost) have my working hours. Fortunately Linux already keeps track of this with the wtmp file. So I just have to parse this and presto my working hours for the last week

makholm@makholm:~$ worktime "00:00 a week ago" "00:00 today"
Fri Dec  5 08:19 - worked 07:36
Mon Dec  8 07:05 - worked 09:03
Tue Dec  9 09:10 - worked 00:01
Tue Dec  9 09:11 - worked 08:40
Wed Dec 10 07:33 - worked 08:33
Thu Dec 11 07:04 - worked 02:51
Thu Dec 11 10:43 - worked 06:12
                          -----
             total worked 43:00
makholm@makholm:~$

A simple cron script called monday morning should provide me with a weekly mail reporting how much I’ve worked the week before. The worktime script is quite simple and uses Sys::Utmp to parse wtmp.

Update: improved version

1 Comment »

  1. Peter Makholm said,

    December 15, 2008 @ 2:33 pm

    Jesper Nyerup discovered some bugs, and we fixed them in a new version. (See the new link)

RSS feed for comments on this post · TrackBack URI

Leave a Comment