gpt4 book ai didi

Shell常用脚本:找出使用 CPU | memory 前十的进程

转载 作者:知者 更新时间:2024-03-13 07:03:34 27 4
gpt4 key购买 nike

命令top:实时更新,且只打印部分进程,打印全部需参数处理即-b == top -b -n 1ps:静态数据,全部进程数据都显示出来 == ps

memoryOrCpuTop10.sh

#!/bin/bash

if [ ! $1 ];then
  echo "Usage: sh $0 [memory|cpu]"
  exit 1
fi

tempFile=$(mktemp memoryOrCpuTop10.temp.XXX)

# 将进程信息放入临时文件中
top -b -n 1 > $tempFile

case $1 in
memory)
  echo "占用内存最多的前10个进程"
  echo 'Memory Memory% PID COMMAND'
  # sort中的  -k 1表示 以每行第一个单词进行排序,-r倒序排序  -n每行第一个单词是数字形式
  tail -n +8 $tempFile | awk '{processInfo[$10" "$1" "$NF]+=$6}END{for (processPIDandName in processInfo) print processInfo[processPIDandName], processPIDandName}' | sort -k 1 -nr  | head -10 | awk '{print int($1/1024)"MB "$2" "$3" "$4}'
  ;;
cpu)
  echo "占用CPU最多的前10个进程"
  echo 'CPURate PID COMMAND'
  # sort中的  -k 1表示 以每行第一个单词进行排序,-r倒序排序  -n每行第一个单词是数字形式
  tail -n +8 $tempFile | awk '{processInfo[$1" "$NF]+=$9}END{for (processPIDandName in processInfo) print processInfo[processPIDandName], processPIDandName}' | sort -k 1 -nr  | head -10
  ;;
*)
  ;;
esac

rm -rf $tempFile

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com