-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path5.Proc.sh
More file actions
35 lines (29 loc) · 1.13 KB
/
5.Proc.sh
File metadata and controls
35 lines (29 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
eval `ps -aux --sort=-%cpu -h | awk -v num=0\
'{if($3 < 50){exit} else {num++; printf("cpupid["num"]=%d\n", $2)}} END{printf("cpunum=%d\n", num)}'`
eval `ps -aux --sort=-%mem -h | awk -v num=0\
'{if($4 < 50){exit} else {num++; printf("mempid["num"]=%d\n", $2)}} END{printf("memnum=%d\n", num)}'`
if [[ ${cpunum} -gt 0 || ${memnum} -gt 0 ]];then
sleep 5
else
exit 0
fi
Time=`date +"%Y-%m-%d__%H:%M:%S"`
if [[ ${cpunum} -gt 0 ]];then
cnt=0
for i in ${cpupid[*]};do
eval `ps -aux -h -q $i | awk -v num=${cnt}\
'{if ($3 < 50) {exit} else {printf("Pname["num"]=%s;Pid["num"]=%d;User["num"]=%s;CpuP[num]=%.2f;MemP["num"]=%.2f;", $11, $2, $1, $3, $4)}}'`
cnt=$[cnt+1]
done
fi
if [[ $memnum -gt 0 ]];then
for i in ${mempid[*]};do
eval `ps -aux -h -q $i | awk -v num=${cnt}\
'{if ($4 < 50) {exit} else {printf("Pname["num"]=%s;Pid["num"]=%d;User["num"]=%s;CpuP[num]=%.2f;MemP["num"]=%.2f;", $11, $2, $1, $3, $4)}}'`
cnt=$[cnt+1]
done
fi
for (( i = 0; i < ${cnt}; i++ ));do
echo "${Time} ${Pname[$i]} ${Pid[$i]} ${User[$i]} ${CpuP[$i]}% ${MemP[$i]}%"
done