如何将 Top 命令输出保存到文件
Linux top 命令被系统管理员广泛使用,以实时显示系统统计数据,包括系统正常运行时间和平均负载、已用内存、正在运行的任务、进程或线程的摘要以及有关每个正在运行的进程的详细信息。
但是,除了实时查看正在运行的系统之外,还可以使用标志将top命令输出保存到文件中,-b
该标志指示top以批处理模式运行,并-n
使用标志指定命令应输出的迭代量。
在下面的例子中,我们将top 命令的输出重定向到top.txt
当前工作目录中的文件。-n参数将用于仅将命令的一个快照发送到上述文件。
$ top -b -n 1 > top.txt
要读取结果文件,请使用命令行文件读取器实用程序,例如cat 命令、less 或 more。
$ less top.txt
要获取top 命令的五次迭代,请执行如下摘录中所示的命令。
$ top -b -n 5 > top-5iterations.txt
为了仅显示结果文件中正在运行的任务数,请使用grep 过滤器,如下面的命令示例所示。
$ cat top-5iterations.txt | grep Tasks
要在top 实用程序中获取特定进程的快照,请执行带有PID 标志的命令(-p)
。要获取正在运行的进程的 PID,请针对正在运行的进程的名称发出pidof 命令。
在这个例子中,我们将通过top 命令拍摄 PID 的三个快照来监控cron进程。
$ pidof crond $ top -p 678 -b -n3 > cron.txt $ cat cron.txt
使用for迭代循环,我们可以通过进程的 PID 显示进程统计信息,每两秒一次,如下例所示。循环的输出也可以重定向到文件。我们将使用与上例相同的 cron PID。
$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done
将循环输出重定向到文件。
$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt $ cat cron.txt
这些只是如何通过top 命令监视和收集系统和进程统计信息的几个示例。