我正在寻找一种简单的方法来确定每天在计算机上花费的时间。如果您尝试监视过程,按键,鼠标点击等操作,那么这将是一项艰巨的任务,因为您可能会做任何事情,包括思考编码问题,阅读网络文章,打电话,或者走走。狗。电脑无法读懂我的想法。由于我将计算机保持24/7全天候运行,因此无法登录。
我想到了记录计算机在屏幕保护程序模式下花费的时间的想法。这样,我的错误将不大于屏保空闲时间与其进入屏保模式的次数的乘积。从24小时中减去此值,将得出一个合理的估计值。
问题是:屏幕保护程序打开和关闭时,我不知道如何记录。目前,我在大多数计算机上都运行Ubuntu 10.10,其中一些计算机即将开始升级到11.04。
有任何想法吗?
[编辑]经过更多的搜索之后,我找到了看起来可行的dbus监视器,但缺少了重要的内容。这是我正在运行的脚本,它将作为守护程序启动监视器:
#!/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
这是锁定和解锁屏幕几次后产生的输出:
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
第二列显然是以秒为单位的unix UTC。缺少的成分是它不能确定屏幕保护程序是打开还是关闭!我想我可以假设它们从NameAcquired发生时就切换了,但是这让我很奇怪,可能会发生我无法预料到的丢失或多余事件,这会使所有内容不同步。
很多想法。
坎宁安