shell脚本文件【top提取信息监控CPU、内存前10进程】

监控使用CPU、内存前10的进程

写法

  • 使用top指令打印到一个临时文件
  • 观察文档,提取需要的信息
    • 提取出第8行以后的信息: tail -n +8 filename
    • 配合管道,把第8行的信息中的俩列放入一个数组中
    • awk ‘{array[$NF]+=$6}END{for (i in array) print array[i],i}’
    • 然后 使用管道把以上信息排序
    • 排序之后 使用head -10

shell

#!/bin/bash

# 统计系统中前10使用内存最多的进程
memory() {
     
    #收集任务管理器信息
    temp_file=`mktemp memory.XXX`
    top -b -n 1 > $temp_file

    #按照进程统计内存使用大小
    tail -n +8 $temp_file | awk '{array[$NF]+=$6}END{for (i in array) print array[i],i}' |sort -k 1 -n -r|head -10
    rm -f $temp_file
}

#统计系统中前10使用CPU的进程
cpu() {
     
    #收集任务管理器信息
    temp_file=`mktemp memory.XXX`
    top -b -n 1 > $temp_file

    #按照进程CPU使用大小
    tail -n +8 $temp_file | awk '{array[$NF]+=$9}END{for (i in array) print array[i],i}' |sort -k 1 -n -r|head -10
    rm -f $temp_file
}
echo "内存前10"
memory
echo "CPU前10"
cpu

效果

shell脚本文件【top提取信息监控CPU、内存前10进程】_第1张图片

你可能感兴趣的:(小项目)