shell脚本每隔2s获取某个进程的cpu和mem数据并保存到csv文件

shell脚本如下

echo "%CPU,%MEM" > cpu_test.csv
pid=1    #Can be change by yourself
while true              
  do
        top -bn1 -n 1 -p $pid | tail -1 | awk '{ print $9,$10 }' | sed 's/ /,/' >> cpu_test.csv
    sleep 2    #delay time
done

脚本中涉及的相关知识

top命令查看系统进程相关参数
tail排序
awk进行文本处理
sed进行符号替换
管道与重定向

TOP命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源使用情况。
top -bn1 显示所有的进程信息。
top -n 1 只显示一屏的信息,供管道调用。
top -p $pid 查看指定的pid的进程的信息,-p后面加指定的pid的数字。

Tail与head命令

head命令总是读取输入文件或者或者管道输入的头部
如:head -n 4 file 该命令会打印文件的前4行
tail命令读取输入文件的最后若干行或者尾部 tail -5 file 该命令会打印文件的后5行

awk命令

可以使用awk命令进行按行取固定位输出
awk ’ { print $1, $7 } ’ file >newfile 将每一行的第一位和第七位进行输出,并重定向到新的文件中去

sed命令

使用sed命令 将:替换成空格,并将输出结果定位到新文件中。
sed ‘s/text/replace/g’ file >newfile
text是要被替换的文字或者符号、replace是要替换成为新的文字或符号 g表示全部进行替换
脚本中是把空格替换成逗号输出到文本中去。

管道与重定向

管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
例如: ls | grep test 使用ls查看当前目录下的文件和文件夹,grep进行过滤显示test相关的文件或者文件夹

将原本输出到标准输出的数据重定向到一个文件中,重定向的一些符号如下:
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值