为SAR命令输入多个文件

时间:2014-07-01 20:16:34

标签: bash wildcard sar

我正在尝试为我正在生成的图形输入多个sar文件。我可以像这样一次输入一个文件:

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

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

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

3 个答案:

答案 0 :(得分: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?

答案 1 :(得分:0)

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

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

由于sar不接受带-f选项的多个输入文件,您尝试执行的操作看起来会失败。将来,您可以考虑使用-o选项来准备包含所需数据的文件,这些记录以后可以使用-f选项输出

答案 2 :(得分: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-suffix对应于该月的某一天。

  • 首先查找并仅查找sar-suffix文件
  • 然后将sar文件作为参数传递给" grep关键字"命令。这将只为您提供您感兴趣的参数的标题(kbmem表示内存,或者#34; CPU%用户"表示cpu状态)
  • 但您还希望接下来的144行 标题后面的内存详细信息(或720行CPU)。因此,在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'
相关问题