我想获取程序每天运行个人日志记录的总时间(从开始到关闭,即使它在后台)。例如:火狐浏览器。
- 是否有系统日志可以跟踪打开和关闭时间?
- 是否有可以使用的预构建实用程序?
如果没有的话,有一些编写脚本的建议吗?
答案1
会计实用程序 (例如 GNU 的实现)跟踪用户活动并提供多种工具来报告用户活动;例如,
lastcomm
将列出最后执行的命令,并且
sa
(运行为root
)将提供活动摘要。
要显示给定进程运行的时间量,请执行以下操作
sudo sa | grep chromium
这将输出许多值:
5 6781.67re 3.78cp 0avio 265418k chromium
4 4521.35re 0.00cp 0avio 176024k chromium*
第一列是给定进程运行的次数,第二列是进程总共运行的分钟数(可能是同时运行的)。以结尾的行*
总结了未执行另一个二进制文件而分叉的进程。由于浏览器倾向于同时执行多个进程,因此带星号的实例代表使用的额外进程;在这种情况下,您可以通过减去这些值来了解实际花费的时间。
这些值是针对所有用户进行汇总的,因此只有当您是系统上的唯一用户时,它们才真正可用于您的目的。
答案2
我最终使用以下脚本来启动程序,并将其替换为指向应用程序的默认指针。
#!/bin/bash
echo -n "$(date +%s)" >> ~/myapplog.log
/application_path/
echo ",$(date +%s)" >> ~/myapplog.log
它基本上以每个会话的时间戳形式记录应用程序的启动和停止时间,并在新行中以逗号分隔。例如:1452663495,1452663502
您可以将 (date +%S) 更改为您喜欢的格式(有关日期,请参阅手册页)