扫描linux服务器进程cpu使用率大于等于脚本设置的阈值
progress_cpu.log 记录具体进程
具体脚本:
#!/bin/bash
set -e
CPU_LIMIT_THRESHOLD_VALUE=100
progress_cpu() {
for item in $(ps aux --sort=-pcpu| sed -n 1,10p| awk '{print $2}' | sed -rn '2,$p'); do
cpu_usage_rate=$(ps aux | grep -v grep | awk '{if ($2=='"${item}"') print $3}'|cut -d "." -f 1)
if [[ $cpu_usage_rate -ge $CPU_LIMIT_THRESHOLD_VALUE ]]; then
echo "时间===>$(date +"%Y-%m-%d %H:%M:%S") 进程号===> ${item} 具体进程====> $(ps aux|grep -v grep |awk '{if ($2=='"${item}"') for(i=11;i<=NF;i++) printf $i " "}') cpu占用====> $(ps aux|grep -v grep |awk '{if ($2=='"${item}"') print $3}')%" >> progress_cpu.log
fi
done
}
main(){
echo "start扫描"
while [[ "true" ]]; do
echo "执行中, ctrl+c停止"
progress_cpu
sleep 1
done
echo "end扫描"
}
main