【发布时间】:2011-11-05 22:30:12
【问题描述】:
我想构建一个里程表,以跟踪自上次重置计数器以来我在服务器上的时间。
最近,我在学校的一台 unix 服务器上工作了相当多的时间,并开始想知道过去几天我花了多少时间。我开始尝试考虑如何编写 Bash 脚本或 C 程序以在我的 .bash_profile 加载时运行(即当我 ssh 进入服务器时)、后台本身以及当我将时间保存到文件时关闭会话。
我知道如何让程序在我登录时运行(通过 .bash_profile)以及如何使 C 程序后台运行(通过分叉?),但我不确定如何检测 ssh 会话已终止(也许通过观察 sshd 进程?) 我希望这是正确的堆栈交换来询问您将如何处理这样的事情并感谢任何输入。
【问题讨论】:
-
见
last命令[linux.die.net/man/1/last] -
您可以考虑使用 .bash_history 的修改时间来确定您上次结束 bash 会话的时间。如果您一次启动多个 shell,这将变得更加复杂。
-
一次运行多个 shell 是我会遇到的问题。
-
谢谢@F.C.对于
last命令,我不知道那个!