将“顶级”CPU/内存保存到文件中

问题描述 投票:0回答:1

我是 shell 脚本新手。我编写了下面的脚本来将“top”命令的输出保存到文件中:cpu.csv 和 mem.csv。但文件并未创建。下面我的脚本中的任何错误:

#!/bin/bash


TIMESTAMP=$(date +"%Y-%m-%d-%H:%M:%S")

top -b -n 1 &

CPU_LINE=$(grep "Cpu(s)")
MEM_LINE=$(grep "KiB Mem")

echo "$TIMESTAMP,$CPU_LINE" >> cpu.csv

echo "$TIMESTAMP,$MEM_LINE" >> mem.csv

我希望看到“top”命令的“Cpu(s)”行被保存到 cpu.csv 文件中,并且时间戳在前面。

bash shell cpu-usage
1个回答
0
投票

您的 grep 命令不完整。您需要将您的模式应用于某些东西,通常是文件或来自标准输入。

您可以通过管道连接

|
这两个命令,将一个命令的标准输出连接到另一个命令的标准输入。

例如:

CPU_LINE=$(top -b -n 1 | grep "Cpu(s)")

这将使用您期望的数据创建 CPU_LINE 变量,然后输出到您的文件。

© www.soinside.com 2019 - 2024. All rights reserved.