我正在编写一个shell脚本,它运行命令mpstat和iostat以获取CPU和磁盘使用情况,从中提取信息并将它们放入.plot文件中,以便稍后使用bargraph.pl对它们进行图形化。我遇到麻烦的是当我使用awk从mpstat获取时间时,就像这样
if request.form['submit']== 'query':
select=1
a=db.execute("PRAGMA table_info(users)")
schema=[]
for i in a:
schema.append(i['name'])
rows=db.execute("SELECT * FROM users")
它将在代码末尾打印一个新行。我尝试使用printf,因为这适用于我的其他代码行,以获取所需的特定信息,而无需添加新的代码行,但我不知道如何格式化它。有没有办法用awk或任何其他方法来完成这个?提前谢谢。
当使用命令mpstat时,这就是bash返回的内容
mpstat | awk 'FNR == 4 {print $1;}' >> CPU_usage.plot
这就是我想要完成的事情,花时间,usr,sys和idle将它们放入一个名为CPU_usage.plot的文件中。这就是我想要放入文件的内容:
Linux 3.4.0+ (DESKTOP-JM295S0) 04/30/2017 _x86_64_ (4 CPU)
03:56:43 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:56:43 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
我得到的是:
03:56:43 0.00 0.00 100.00
这是我的代码:
03:56:43
0.00 0.00 100.00
答案 0 :(得分:0)
使用以下 awk 方法:
mpstat | awk 'NR==4{print $1,$4,$6,$13}' OFS="\t" >> CPU_usage.plot
现在,CPU_usage.plot
文件应包含:
03:56:43 0.00 0.00 100.00