批量插入头文件脚本__批量执行命令打印内存脚本

#!/bin/bash
if [ $# -lt 2 ]; then
    echo "example:bash insertHeader.sh <list> <dir>"
    echo "        bash insertHeader.sh <insert> <dir>"
    echo "        bash insertHeader.sh <delete> <dir>"
    exit 1
fi

flag=$1
insertDir=$2
##grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' src/Beast -r | grep -v "free software\|*\|//" | awk -F ":" '{print $1}' | uniq | grep "\.cc\|\.cpp\|\.c\|\.h"
#filelist=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $insertDir -r | grep -v "free software\|*\|//" | awk -F ":" '{print $1}' | uniq | egrep "\.c{1,2}$|\.cpp$"`
filelist=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $insertDir -r | grep -v "free software\|*\|//" | awk -F ":" '{print $1}' | uniq | egrep "\.h{1,2}$|\.hpp$"`
##egrep "\.c{1,2}$|\.cpp$|\.h{1,2}$|\.hpp$"`
if [ "X$flag" = "Xlist" ];then
    ##filelist=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $insertDir -r | grep -v "free software" | grep -v "sage@newdream.net" | awk -F ":" '{print $1}' | uniq | grep "\.cc\|\.h\|\.cpp\|\.c"`
    count=0; 
    for var in ${filelist[@]};do
    lastno=`grep -rin "^#include" $var | sed -n '$p' | awk -F ":" '{print $1}'`
    echo "$var $lastno"
    if [ $lastno ];then
        ((count=count+1));
    fi
    ##echo $var
    done
    echo $count
elif [ "X$flag" = "Xinsert" ];then
    ##filelist=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $insertDir -r | grep -v "free software" | grep -v "sage@newdream.net" | awk -F ":" '{print $1}' | uniq | grep "\.cc\|\.h\|\.cpp\|\.c"`
    count=0; 
    for var in ${filelist[@]};do
    lastno=`grep -rin "^#include" $var | sed -n '$p' | awk -F ":" '{print $1}'`
    echo "$var $lastno"
    ##sed -i "N;${lastno}a#include \"include/mem_statistics_ext.h\"" $var
    if [ $lastno ];then
        ((count=count+1));
        sed -i "${lastno}a #include \"include/mem_statistics_ext.h\"" $var
    fi
    done
    echo $count
elif [ "X$flag" = "Xdelete" ];then
    ##filelist=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $insertDir -r | grep -v "free software" | grep -v "sage@newdream.net" | awk -F ":" '{print $1}' | uniq | grep "\.cc\|\.h\|\.cpp\|\.c"`
    count=0; 
    for var in ${filelist[@]};do
    ((count=count+1));
    includeNo=`grep -rni '^#include \"include\/mem_statistics_ext.h\"' $var | sed -n '$p' | awk -F ":" '{print $1}'`
    sed -i "/^#include \"include\/mem_statistics_ext.h\"/d" $var
    echo "$var $includeNo"
    done
    echo $count
fi

==============列出符合要求的文件个数,批量执行命令=========================
#!/bin/bash
if [ $# -ne 2 ]; then
    echo "example:bash listNeedUpdate.sh <list,insert,delete> <dir>"
    exit 1
fi

flag=$1
dir=$2
dirlist=`ls -F $dir | grep '\/$' | grep -v boost`
DO_WORK="insertHeader.sh"
for var in ${dirlist[@]};do
    ##echo $dir$var
    #num=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $dir$var -r | grep -v "free software\|*\|//" | awk -F ":" '{print $1}' | uniq | grep "\.cc\|\.cpp\|\.c" | wc -l`
    num=`grep -w 'malloc\|realloc\|calloc\|posix_memalign\|memalign\|free\|new\|delete' $dir$var -r | grep -v "free software\|*\|//" | awk -F ":" '{print $1}' | uniq | grep "\.h\|\.hh\|\.hpp" | wc -l`
    echo "$dir$var  $num"
    #./${DO_WORK} $flag $dir$var
done


==============批量执行命令打印内存=========================
#!/bin/bash -e
#set -e
#cd `dirname $0`
#free > memory_info.txt
#ps aux --sort=-rss | sed "1d" | head -n 4 | sed -n "2,1p" | awk '{print $2}'
#if [ $# -ne 1 ] ; then
if [ $# -lt 1 ] ; then
  echo "print_memory.sh <num> [process]"
  echo "    ex.: print_memory.sh 4  ; it will print top 4 process."
  echo "    ex.: print_memory.sh 4 ceph-osd ; it will print top 4 of process name include 'ceph-osd'."
  exit 1
fi

topNum=$1
process=$2
    #ps aux --sort=-rss | grep $process | grep -v '/bin/sh' | grep -v '/bin/bash' | grep -v grep
    #ps aux --sort=-rss | grep $process | grep -v '/bin/sh|/bin/bash|grep'
#if [ $process ] ; then
 # echo $process
#fi
#headNo=$((topNum+1))
#echo $topNum$headNo
#pause

  free ; 
  echo -e "\nall process mem:" ; ps aux | sed "1d" | awk -F " " '{sum+=$6}; END{print sum}' ;  
  echo -e "\ntop $topNum:" ; ps aux --sort=-rss | head -n $((topNum+1))
  
#4打印每个进程的详细内存占用
  echo -e "\ntop $topNum process mem:" ; 
  pidlist=`ps aux --sort=-rss | sed "1d" | head -n $topNum | awk '{print $2}'`

  if [ $process ] ; then
    #ps aux --sort=-rss | grep $process | grep Ssl | head -n $topNum
    #ps aux --sort=-rss | grep $process | grep -v '/bin/sh|/bin/bash|grep'
    #ps aux --sort=-rss | grep $process | grep -v '/bin/sh' | grep -v '/bin/bash' | grep -v grep
    pidlist=`ps aux --sort=-rss | grep $process | grep -v '/bin/sh' | grep -v '/bin/bash' | grep -v grep | head -n $topNum | awk '{print $2}'`
  fi

  for pid in ${pidlist[@]};do 
    echo -e "    PID $pid"
    #cat /proc/483602/status | grep -E 'VmSize|VmRSS|VmStk|VmData|VmExe|VmLib'
    cat /proc/$pid/status | grep "VmSize" | sed "s/VmRSS/TotalVm/g"
    cat /proc/$pid/status | grep "VmRSS" | sed "s/VmRSS/CurRss/g"
    cat /proc/$pid/status | grep "VmStk" | sed "s/VmStk/stack/g"
    cat /proc/$pid/status | grep "VmData" | sed "s/VmData/heap/g"
    cat /proc/$pid/status | grep "VmExe" | sed "s/VmExe/code/g"
    cat /proc/$pid/status | grep "VmLib" | sed "s/VmLib/lib/g"
  
    libsize=`cat /proc/$pid/status | grep "^VmLib" | awk -F " " '{print $1}'`
    
  done
)  > memory_info.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值