监控linux服务端各进程cpu脚本
时间: 2023-11-02 08:03:28 浏览: 49
监控Linux服务端各进程CPU的脚本可以使用如下步骤实现:
1. 使用ps命令获取当前运行的进程列表和其对应的PID(进程ID)。
2. 遍历进程列表,使用top命令获取每个进程的CPU使用率。
3. 将进程的PID和对应的CPU使用率存储在一个字典中。
4. 根据需要,可以对字典按照CPU使用率进行排序,以便于查看占用CPU最多的进程。
5. 输出每个进程的PID和CPU使用率。
6. 可以将脚本设置为定时任务,周期性地执行,以实时监控进程的CPU使用情况。
以下是一个示例的监控脚本:
```
#!/bin/bash
# 使用ps命令获取运行进程列表和PID
process_list=($(ps -e -o comm,pid | awk '{print $1 ":" $2}'))
# 定义存储进程和CPU使用率的字典
declare -A cpu_usage
# 遍历进程列表
for process in "${process_list[@]}"
do
# 获取进程名和PID
name=${process%%:*}
pid=${process#*:}
# 使用top命令获取进程的CPU使用率
cpu=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
# 将进程的PID和CPU使用率添加到字典中
cpu_usage[$pid]=$cpu
done
# 排序字典按CPU使用率进行降序排序
sorted_cpu_usage=($(for key in ${!cpu_usage[@]}; do echo $key"="${cpu_usage[$key]}; done | sort -rn -t"=" -k2))
# 输出进程的PID和CPU使用率
for process in "${sorted_cpu_usage[@]}"
do
pid=${process%=*}
cpu=${process#*=}
echo "进程PID:$pid,CPU使用率:$cpu%"
done
```
注意:请在运行该脚本之前确保你拥有执行权限。另外,该脚本输出的CPU使用率为每个进程的实时值,因此可以在脚本中将其加入到定时任务中,实现周期性监控。