Shell脚本-查看占用CPU的进程

功能需求

1、列出所有进程的信息(启动用户、进场ID、占用CPU、占用内存、状态、执行命令)

2、排序

3、输出结果

#! /bin/sh
# 查询占用CPU的进程
dateString=$(date +"%Y-%m-%d_%H:%M:%S")
resultFile="result_track-cpu_${dateString}.txt"
processCount=3
echo "结果文件: $resultFile" 

heads[1]='User(用户)'
heads[2]='PID(进程)'
heads[3]='%CPU(占用CPU)'
heads[4]='%MEM(占用内存)'
heads[8]='STAT(状态)'
heads[11]='COMMAND(命令)'

getLinePart() {
	local line=$1
	local serialNumber=$2
	if [ $serialNumber -eq 11 ]
	then 
		echo $line | awk '{for (i=11;i<=NF;i++) prin $i;}' | xargs
	else
		echo $line | awk "{print \$$[$serialNumber]}"
	fi
}

ps -aux | sort -k3nr | head -n $processCount | while read line
do
	cpuPart=`getLinePart "$line" 3`
	if [ $cpuPart == '0.0' ]
	then
		break
	fi
	processSerialNumber = $((processSerialNumber + 1))
	echo "进程: $processSerialNumber" >> $resultFile

	echo "${line}">>$resultFile
	
	for headSerialNumber in ${!heads[@]}
	do
		title=${heads[$headSerialNumber]}
		part=`getLinePart "$line" $headSerialNumber`
		echo "${title}: $part" >> $resultFile
	done
	echo "" >> $resultFile
done
echo "结果文件: $resultFile" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值