zoukankan      html  css  js  c++  java
  • 指定进程系统资源占用统计脚本,cpu、内存、IO、EPS

      1 #!/bin/bash
      2 #author shiqi
      3 
      4 t_pid=29977
      5 es_pid_M=8787
      6 es_pid_S=8284
      7 
      8 if [ $# -eq 0 ];
      9 then
     10     echo -e "33[33m ------------------------------------- 33[0m"
     11     echo -e "33[32m 1)测试 translator: ./translator_test.sh 1 interval_time total_time date33[0m"
     12     echo -e "33[31m 2)测试 inserter & es: $0 2 interval_time total_time date33[0m"
     13     exit
     14 fi
     15 
     16 if [ $1 -eq 1 ];
     17 then
     18     if [ -z $2 -a -z $3 ];
     19     then
     20         echo -e "33[31m 必须按照格式: $0 $1 interval_time total_time date such as: $0 $1 10 300 20200426 33[0m"
     21         exit
     22     fi
     23     if [ -z $4 ];
     24     then
     25         echo -e "33[31m You must have a date to exec 33[0m"    
     26         exit
     27     fi
     28     starttime=$4
     29     interval_time=$2
     30     total_time=$3
     31     dataSource=/home/fantom/kechaojian/20200410/netflow
     32     targetPath=/data/primitive/$starttime/sangfor
     33     if [ ! -d $targetPath ];
     34     then
     35         mkdir -p $targetPath
     36         echo "Path $targetPath create success"
     37     fi
     38     if [ ! -d $dataSource ];
     39     then
     40         echo "Data source not exist please change the data source!"
     41         exit
     42     else
     43         systemctl stop inserter 
     44         /bin/cp $dataSource $targetPath -rf
     45         date -s "$starttime 00:01:00"
     46         count=`expr $total_time / $interval_time`
     47         nohup pidstat -d $interval_time $count -p $t_pid >> translator_io_info.log & 
     48         i=0
     49         top -b -n 1 -p 29977 | grep PID >>translator_cpu_mem_info.log
     50         while [ $i -lt $total_time ];
     51         do 
     52             top -b -n 1 -p $t_pid | grep $t_pid >> translator_cpu_mem_info.log
     53 #            pidstat -d 1 1 | grep $t_pid >> translator_io_info.log 
     54             sleep $interval_time
     55             echo -e "33[33m Current time:$i  Total time:$total_time 33[0m"
     56             ((i=i+$interval_time))
     57         done
     58     fi    
     59 fi
     60 
     61 
     62 if [ $1 -eq 2 ];
     63 then
     64         if [ -z $2 -a -z $3 ];
     65         then
     66         echo -e "33[31m 必须按照格式: $0 $1 interval_time total_time date such as: $0 $1 10 300 20200426 33[0m"
     67                 exit
     68         fi  
     69         if [ -z $4 ];
     70         then
     71                 echo -e "33[31m You must have a date to exec 33[0m" 
     72                 exit
     73         fi  
     74         starttime=$4
     75         interval_time=$2
     76         total_time=$3
     77         dataSource=/data/dap/log_data/store/fw/kvd/S/$starttime/
     78         if [ ! -d $dataSource ];
     79         then
     80                 echo "Data source not exist please change the data source!"
     81                 exit
     82         else
     83                 date -s "$starttime 00:01:00"
     84                 systemctl start inserter &&
     85         i_pid=$(ps -aux | grep inserter | grep "/usr/bin" | awk '{print $2}') 
     86                 count=`expr $total_time / $interval_time`
     87                 nohup pidstat -d $interval_time $count -p $i_pid >> inserter_io_info.log & 
     88                 nohup pidstat -d $interval_time $count -p $es_pid_M >> es_master_io_info.log & 
     89                 nohup pidstat -d $interval_time $count -p $es_pid_S >> es_slave_io_info.log & 
     90                 sleep 2
     91         es idx | grep health >> es_num.log
     92         i=0 
     93                 top -b -n 1 -p $i_pid | grep PID >>inserter_cpu_mem_info.log
     94                 top -b -n 1 -p $es_pid_M | grep PID >>es_M_cpu_mem_info.log
     95                 top -b -n 1 -p $es_pid_S | grep PID >>es_S_cpu_mem_info.log
     96                 while [ $i -lt $total_time ];
     97                 do 
     98                         top -b -n 1 -p $i_pid | grep $i_pid >> inserter_cpu_mem_info.log
     99                         top -b -n 1 -p $es_pid_M | grep $es_pid_M >> es_M_cpu_mem_info.log
    100                         top -b -n 1 -p $es_pid_S | grep $es_pid_S >> es_S_cpu_mem_info.log
    101             es idx | grep ngfw.access-2020-07-17 >> es_num.log
    102 #                       pidstat -d 1 1 | grep $t_pid >> translator_io_info.log 
    103                         sleep $interval_time
    104                         echo -e "33[33m Current time:$i  Total time:$total_time 33[0m"
    105                         ((i=i+$interval_time))
    106                 done
    107         fi    
    108 fi
  • 相关阅读:
    LeetCode 剑指offer 面试题05. 替换空格
    WebSocket整合SSM(Spring,Struts2,Maven)
    Eclipse常用20个快捷键
    JDK、JRE、JVM三者间的联系与区别
    Java集合框架详解(全)
    Java开发环境配置(Jdk、Tomcat、eclipse)
    Java面向对象概述及三大特征(封装,继承和多态)
    程序员之歌
    UML2.0最新版入门图解
    java单元测试,ssh(spring,struts2,hibernate)框架整合junit4
  • 原文地址:https://www.cnblogs.com/shiqi17/p/12809755.html
Copyright © 2011-2022 走看看