所有pid的CPU使用率
问题出现的原因:
出现该问题的原因是因为用户不想使用top命令,但是需要获取所有进程的CPU使用率。
解决方法:
解决该问题的方法有两种:
1. 使用ps命令获取所有进程的PID和CPU使用率:ps -e -o "%p-%C"。
2. 编写一个脚本来获取所有进程的CPU使用率,可以通过解析ps命令的输出或者检查/proc/pid/stat文件来获取CPU使用率。
下面是一个获取所有进程CPU使用率的脚本示例:
#!/bin/bash shopt -s extglob for line in /proc/+([0-9]); do echo -n "${line##*/}- " ps -p "${line##*/}" -o %cpu | sed -n 2p | sed 's/ //' done
脚本说明:
- shopt -s extglob:在bash中开启扩展文件匹配功能。
- +([0-9]):匹配包含一个或多个数字的文件。
- ${line##*/}:去除文件路径,只保留文件名。
- ps -p "${line##*/}" -o %cpu:使用ps命令获取对应进程的CPU使用率。
- sed -n 2p:提取第二行的数据。
- sed 's/ //':去除空格。
通过使用以上方法,即可获取到所有进程的CPU使用率。