网站搜索

如何将 Top 命令输出保存到文件


Linux top 命令被系统管理员广泛使用,用于实时显示系统统计信息,包括系统正常运行时间平均负载已用内存正在运行的任务,进程或线程的摘要以及每个正在运行的进程的详细信息。

但是,除了实时查看正在运行的系统之外,还可以使用 -b 标志将 top 命令输出保存到文件中,该标志指示 top 以批处理模式运行,而 -n 标志指定命令应输出的迭代量。

在下面的示例中,我们将 top 命令的输出重定向到当前工作目录中的 top.txt 文件。 -n 参数将用于仅将命令的一个快照发送到上述文件。

top -b -n 1 > top.txt

要读取结果文件,请使用命令行文件读取器实用程序,例如 cat 命令、less 或 more。

less top.txt

要获取顶级命令的五次迭代,请执行以下摘录所示的命令。

top -b -n 5 > top-5iterations.txt

为了仅显示结果文件中正在运行的任务数,请使用 grep 过滤器,如以下命令示例所示。

cat top-5iterations.txt | grep Tasks

要拍摄top utility中特定进程的快照,请使用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 命令监视和收集系统和进程统计信息的几个示例。