shell 根据多个进程名监控多个进程的cpu、内存,并输出
时间: 2023-08-18 11:09:52 浏览: 166
shell脚本监控系统负载、CPU和内存使用情况
可以使用 shell 脚本结合 ps、awk 和 top 命令实现监控多个进程的 CPU 和内存占用情况,并输出到日志文件中。以下是一个示例脚本:
```sh
#!/bin/bash
# 定义需要监控的进程名称和记录日志的文件名
process_names=("process1" "process2" "process3")
log_file="process_monitor.log"
# 循环遍历进程名称,获取进程 ID
for process_name in ${process_names[@]}
do
pid=$(ps -ef | grep $process_name | grep -v grep | awk '{print $2}')
# 如果进程存在,则监控 CPU 和内存占用情况
if [ -n "$pid" ]
then
echo "$(date) - Monitoring $process_name (PID: $pid)" >> $log_file
top -b -n 1 -p $pid | grep $pid >> $log_file
else
echo "$(date) - $process_name not running" >> $log_file
fi
done
```
以上脚本使用 ps 命令获取进程 ID,然后使用 top 命令监控进程的 CPU 和内存占用情况,并将结果输出到日志文件中。可以将脚本添加到 crontab 中,定时执行监控任务。
阅读全文