zoukankan      html  css  js  c++  java
  • shell脚本每隔2s获取某个进程的cpu和mem数据并保存到csv文件

    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相关的文件或者文件夹

    将原本输出到标准输出的数据重定向到一个文件中,重定向的一些符号如下:

    原文链接:https://blog.csdn.net/zhongweidu3/article/details/88785580

  • 相关阅读:
    行坐标HDU1175:连连看(DFS)
    hibernatesqlHibernate中createQuery与createSQLQuery两者的区别
    代码窗口九种方式实现 javascripts 弹出对话框窗口代码
    函数线程VC++多线程函数调用
    错误classspring错误汇总
    android下载手动下载Android SDK
    节点node[算法导论]二叉排序树(Binary Search Tree)
    共享访问失败解决(无法访问 您可能没有权限使用网络资源)
    DnsTester(DNS 服务器性能测试工具)
    vc 花指令 防破解
  • 原文地址:https://www.cnblogs.com/Yanss/p/12218756.html
Copyright © 2011-2022 走看看