我很想知道我实际上在 shell 上执行管理任务花了多少时间。当然,对于计费来说,这些信息是不够的,但弄清楚我实际上在 shell 上花了多少时间会很有帮助。
我的问题是:
- 有谁能提供一些关于如何计算在 shell 中花费的时间(以小时+分钟为单位)的提示,比如说每个用户帐户?
- 有谁能推荐一个可以用来分析这个时间的软件吗?
- 或者我想了解如何对所花费的时间进行分类(例如 Apache 为 1 小时,Samba 为 2 小时,等等)
此外,我们也非常赞赏您对如何监控管理时间的看法!
为了缩小问题范围,我特别感兴趣的是追踪方法Linux 系统管理在 shell 中花费的时间
答案1
嗯,从创建登录和注销文件到功能齐全的跟踪软件,有几种方法请看这里:
http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html
或者谷歌搜索“审计壳公司”
如果您使用 Emacs,很多人都会使用 Org 模式来实现这一点。
答案2
如果你只是想看看你花了多少时间登录,为什么不看看“last”的输出呢?不过,我想你想要比这更详细的信息。
您的陈述“...跟踪 Linux 系统管理 shell 所花费时间的方法。”让我犹豫了。这听起来几乎像是您正在寻找某种自动方法来识别您正在处理的工作并记录时间。
我假设,你花在构建和维护某种“人工智能”来分析你的命令和跟踪时间上的时间,将远远超过你实际花在系统管理员职责上的时间。那个工具怎么知道为什么您今天有跟踪“/var/log/messages”吗?
我为所有客户安排时间和材料,必须记录我的活动和时间的详细日志。如果有捷径可走,我当然很乐意找到它,但我的方法是唯一一种具有现实意义的方法:
- 记录给定活动的开始和停止时间
- 尝试减少对这些活动的干扰,一旦被干扰,就退出该活动(并希望转到其他可收费的活动上)
- 对与给定活动相关的时间进行分类并写下笔记
- 无限重复(在可能和适当的情况下计费!)
最近我一直在使用 iPod 上的 iPhone 应用程序,小时追踪器,但以前我使用过诸如记事本和带有书写内容的纸片(tm)之类的软件。我看不出有什么理由不能使用简单的 shell 脚本将时间附加并记录详细信息到数据库、平面文件等。您可能可以在开始不同的管理活动之前登录到不同的帐户,这样您就可以记录活动的开始/停止时间。无论您做什么,使用方法都比您用来收集数据的工具重要得多。
如果您希望获得良好的每项任务时间,则必须有纪律地记录开始和停止执行给定任务的时间。如果您想很好地掌握与 Samba 相关的管理时间,则必须确保在执行 Apache 工作、玩 Server Fault 等时注销该任务。
就像我说的——我很想找到一条捷径。某种脑机-GPS-电话界面会很棒,但我找不到。
答案3
时间跟踪可以像您(或您报告的对象)想要的那样简单或困难。
就我个人而言,我的做法是在我的托管服务器上运行一个进程,该进程已连接到 google talk 帐户。然后,我通过笔记本电脑上运行的 google talk 记录该进程,这样我就可以获得我所做事情的带时间戳的记录。当我试图弄清楚我把我(客户)的时间花在了什么事情上时,这个记录与我的已发送邮件文件夹相结合,会大有帮助。
我选择 Google Talk 是因为它使用 SSL 连接,因此不容易被窥探。
答案4
如果您需要针对特定项目或客户收取时间费用,您应该查看律师、会计师、顾问等使用的计时软件。我们在工作中使用一些企业级的糟糕软件包来针对项目收费。
对于 Linux,有一个名为仓鼠计划对于这类事情来说,这是一个很好的工具。对于系统管理员这样的知识工作者来说,自动跟踪在大多数情况下都不起作用。