输出sar命令结果为csv文件

Agi*_*Agi 6 unix shell sar

我对shell编程比较陌生,想知道是否有一种简单的方法可以将sar命令的结果输出到csv文件中.使用sar > file1.csv完成工作,但格式不正确.所有数据都存在于一列中.我试过这个,但情况更糟

sar -d -u -w 1 1 | grep -v Average | grep -v Linux | tr -s ' ' ',' | tr -d '\n' > file1.csv
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我正确的脚本来将sar命令的输出存储在一个csv文件中.帮助将不胜感激.

mim*_*ara 38

我知道这有点旧,但你应该或者可以使用sadf -dh -- <sar command>.它是sysstat包的一部分,它将为您提供csv输出而不需要awk和正则表达式.实际上,最新版本也能够将信息输出到JSON和XML.你可以选择你的毒药:)

简单的例子:

[local@localhost dir]$ sadf -dh -- -p
localhost.localdomain;-1;2014-06-13 08:47:02 UTC;LINUX-RESTART
# hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle[...]
localhost.localdomain;600;2014-06-13 09:00:01 UTC;-1;8.80;0.01;1.65;9.51;0.00;80.03
localhost.localdomain;600;2014-06-13 09:10:01 UTC;-1;3.03;0.71;2.41;0.81;0.00;93.05
Run Code Online (Sandbox Code Playgroud)

  • 如果它是一个多cpu核心系统,在sadf中省略h选项将为每个cpu-core打印一行.该文件将更容易处理. (3认同)
  • 这个答案被严重低估了. (3认同)

Vin*_*yon 3

sar -d -u -w 1 1 | grep -v Average | grep -v Linux |awk '{if ($0 ~ /[0-9]/) { print $1","$2","$4","$5","$6; }  }'



22:14:04,CPU,%nice,%system,%iowait
22:14:05,all,0.00,8.53,0.00
22:14:04,proc/s,,,
22:14:05,0.00,,,
22:14:04,DEV,rd_sec/s,wr_sec/s,avgrq-sz
22:14:05,dev8-0,0.00,0.00,0.00
Run Code Online (Sandbox Code Playgroud)

以上输出享受