3

我正在尝试为正在生成的图形输入多个 sar 文件。我可以一次输入一个文件,如下所示:

LC_ALL=C sar -A -f /var/log/sa/sa05 >> /tmp/sar.data3.txt

这个系统税不起作用,但这是我想要做的事情的想法:

LC_ALL=C sar -A -f /var/log/sa/sa* >> /tmp/sar.data3.txt

4

3 回答 3

1

sa* 文件似乎是二进制文件,即 saXX 文件之一上的 cat 不会回显有效的人类可读单词。以下可用于查看其人类可读的内容。

strings /var/log/sa/sa01 or saXX 

您可能需要的文件是 sarXX:您可以尝试上面提到的“LC_ALL=C ....”命令来代替我在下面提到的。

for file in /var/log/sa/sar*; do sar -A -f "$file"  >> /tmp/sar.data3.txt; done

现在,以下命令将显示/拥有您需要的内容。

cat /tmp/sar.data3.txt 

我没有看到 SAR 命令的所有选项,建议您检查是否有支持 sar* 或 sar 的选项?

于 2014-07-01T21:11:18.653 回答
1

您可以使用 find 命令聚合文件并将它们连接到您的输出文件中,类似于:

find /var/log/sa -type f -name "sa*" \
-exec LC_ALL=C sar -A -f '{}' >> /tmp/sar.data3.txt \;

sar由于不使用 -f 选项接受多个输入文件,您尝试执行的操作似乎失败了。将来,您可能会考虑使用该-o选项来准备包含您想要在记录中的数据的文件,这些数据以后可以使用该-f选项输出

于 2014-07-01T21:22:00.610 回答
0

要查看内存统计数据的多日 sar 报告:

find /var/log/sa/ -type f|grep sar|xargs grep kbmem -A144

要查看CPU 状态,试试这个

find /var/log/sa/ -type f|grep sar|xargs grep "CPU     %user" -A720

这个怎么运作

目录 /var/log/sa/ 将包含 sar23、sar24、sar25、sar26、sar27 等文件。sar 后缀对应于月份中的某天。

  • 首先仅查找和 grep sar 后缀文件
  • 然后将 sar 文件作为参数传递给“grep 关键字”命令。这将只为您提供您感兴趣的参数的标题(kbmem 表示内存,或“CPU %user”表示 cpu 状态)
  • 但是您还希望标题后面的 144 行内存详细信息(或 CPU 的 720 行)。因此,在 grep 命令中包含 -A144 或 -A720 选项。

笔记:

  • 对于内存统计,每 10 分钟记录一行。因此每天有 144 行。
  • 对于 CPU 统计数据,每 10 分钟记录 5 行,因此每天 720 行(至少在我的环境中)。这可能在您的环境中有所不同,因此请在您最后手动验证或计算。

如果你喜欢别名:

alias sarcpu='find /var/log/sa/ -type f|grep sar|xargs grep CPU     %user -A720'
alias sario='find /var/log/sa/ -type f|grep sar|xargs grep bread -A144'
alias sarmem='find /var/log/sa/ -type f|grep sar|xargs grep kbmem -A144'
于 2017-09-28T16:57:13.863 回答