shell 根据进程名监控文件的cpu、内存并输出在一个文档里
时间: 2023-11-27 20:49:27 浏览: 60
可以通过以下步骤来实现:
1. 使用 `ps` 命令获取进程的 PID:
```
pid=$(ps -ef | grep "进程名" | grep -v grep | awk '{print $2}')
```
其中,`进程名` 换成你要监控的进程名。
2. 使用 `top` 命令获取进程的 CPU 和内存占用:
```
cpu=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
mem=$(top -b -n 1 -p $pid | grep $pid | awk '{print $10}')
```
其中,`$pid` 是上一步获取到的进程 PID。
3. 将获取到的 CPU 和内存占用写入到文件中:
```
echo "$(date '+%Y-%m-%d %H:%M:%S') CPU:$cpu% MEM:$mem%" >> /path/to/output/file.txt
```
其中,`/path/to/output/file.txt` 换成你要输出的文件路径。
4. 将上述代码放入一个循环中,每隔一段时间执行一次,即可实现监控并输出到文件。
```
while true
do
pid=$(ps -ef | grep "进程名" | grep -v grep | awk '{print $2}')
cpu=$(top -b -n 1 -p $pid | grep $pid | awk '{print $9}')
mem=$(top -b -n 1 -p $pid | grep $pid | awk '{print $10}')
echo "$(date '+%Y-%m-%d %H:%M:%S') CPU:$cpu% MEM:$mem%" >> /path/to/output/file.txt
sleep 60 # 每隔 60 秒执行一次
done
```
以上代码会无限循环执行,每隔 60 秒获取一次进程的 CPU 和内存占用,并将结果写入到文件中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)