我知道这ps -efl
显示了 *nix 系统上正在运行的进程。
我想检查在特定机器上运行的(过去)进程的历史记录,最好包含ps
提供的所有信息(即%CPU
,%MEM
)。
我可以使用哪些命令行实用程序,此信息是否存储在与.bash_history
文件类似的位置?
答案1
尝试atop
。它可以保存各种系统信息(进程、CPU、内存、磁盘和网络使用情况)的可配置历史记录。注意:当然它不能记录所有内容;它只是定期拍摄“快照”。
编辑:如果不清楚,有一个atop
守护进程执行定期快照,存储在/var/log/atop
(Debian 下使用的目录)中。
答案2
你可以给执行监听一枪。它atop
比记录这些瞬态过程时采用的“采样”方法更可靠。不过,它记录的信息不如 那么多ps
,例如 CPU 和内存使用情况。
看:
- https://www.brendangregg.com/blog/2014-07-28/execsnoop-for-linux.html
- https://github.com/brendangregg/perf-tools
- https://github.com/iovisor/bcc
编辑:因为execsnoop
本质上是一个Python脚本,它已经解析出pid(参见源代码),您可以使用以下命令调整脚本普苏蒂尔如果确实需要,可以打印出 CPU 和内存使用情况。