【发布时间】:2017-05-30 07:29:44
【问题描述】:
我在 shell bash 中有这个脚本:
top | awk '{$10 $11}'> agent.csv
top | awk '{$10 $11}'> spark.csv
top | awk '{$10 $11}'> kafka.csv
top | awk '{$10 $11}'> zk.csv
top | awk '{$10 $11}'> engine.csv
for ((;;))
do
top -b -c -d 2 n 10 | grep agent >> agent.csv;
top -b -c -d 2 n 10 | grep spark >> spark.csv
top -b -c -d 2 n 10 | grep kafka >> kafka.csv
top -b -c -d 2 n 10 | grep zookeeper >> zk.csv
top -b -c -d 2 n 10 | grep engine >> engine.csv
sleep 10;
done &
我在循环之前尝试使用“awk”命令执行的操作是获取指标 %CPU 和 %MEM 的名称。 在循环内我试图获得特定的进程 然后将它们放在一个文件中,每个文件为每个进程
我没有得到我想要得到的东西。 没有任何东西被写入文件。
【问题讨论】:
-
我不明白你想用第一个顶部实现什么。您将拥有顶部的所有第 10 列和第 11 列,以及标题(僵尸、平均负载等)。此外,您的
awk命令不会打印任何内容,因此您不会有任何结果,它应该类似于:awk '{print $10" "$11}' -
如果你想要实现的是在你的文件中有一个对应于顶级命令之一的标题,你应该尝试类似:
top -b -n 1 |grep "PID USER" |tee agent.csv spark.csv kafka.csv zk.csv engine.csv