因为过程中碰到sudo -u zabbix pidstat -d 无法显示信息,所以无法获取数据。
换了一种方法生成临时文件
cat pidsta.sh
#!/bin/bash
while [ true ]; do
/bin/sleep 2
pidstat -d|awk 'NR>3'|awk '{print $4,$6}'|awk '{a[$2]+=$1} END{for(i in a) print a[i],i}'|sort -nr -k 1|head -n 10 >/tmp/pidsta
done
nohup sh pidsta.sh &
2.获取进程名
cat pidtest.sh
#!/bin/bash
#Fucation:mysql low-level discovery
#Script_name mysql_low_discovery.sh
pidtest() {
port=($(cat /tmp/pidsta|awk '{print $2}'))
printf '{\n'
printf '\t"data":[\n'
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf '\t {\n'
printf "\t\t\t\"{#PIDSTA}\&#