编写shell脚本,周期输出CPU占用率排名前10的进程信息到文件中
时间: 2023-06-27 07:01:40 浏览: 175
以下是一个实现周期输出CPU占用率排名前10的进程信息到文件的shell脚本:
```shell
#!/bin/bash
# 输出文件
output_file="/var/log/top10_cpu.log"
# 循环输出
while true
do
# 获取CPU占用率排名前10的进程
top_processes=$(ps -eo pid,comm,%cpu --sort=-%cpu | head -n 11)
# 输出到文件
echo "$top_processes" > $output_file
# 暂停5秒钟
sleep 5
done
```
解释:
- `ps -eo pid,comm,%cpu --sort=-%cpu`:获取所有进程的pid、名称和CPU占用率,并按照CPU占用率降序排序。
- `head -n 11`:从排名前11的进程中取出前10个,排除掉表头。
- `echo "$top_processes" > $output_file`:将结果输出到指定文件中。
- `sleep 5`:暂停5秒钟,等待下一次循环。
相关问题
编写shell脚本,周期输出CPU占用率排名前10的进程信息到文件中请提交shell代码和执行结果。
以下是一个周期输出CPU占用率排名前10的进程信息到文件的shell脚本:
```bash
#!/bin/bash
while true; do
ps -eo pid,pcpu,comm --sort=-pcpu | head -n 11 > top10_cpu_processes.txt
sleep 10
done
```
该脚本会循环执行以下操作:
1. 使用`ps`命令获取当前正在运行的所有进程的PID、CPU占用率和进程名,并按照CPU占用率进行降序排序。
2. 取前11行(其中第一行为表头),也就是CPU占用率排名前10的进程信息。
3. 将这些信息输出到`top10_cpu_processes.txt`文件中。
4. 等待10秒钟后再次执行以上操作。
因此,该脚本会周期性地记录CPU占用率排名前10的进程信息,以便我们能够及时发现CPU占用率较高的进程并进行优化或调整。
编写shell脚本,周期输出CPU占用率排名前10的进程信息到文件中 请提交shell 代码和执行结果。
以下是一个实现周期输出CPU占用率排名前10的进程信息到文件的shell脚本:
```shell
#!/bin/bash
# 定义输出文件路径和时间间隔
OUTPUT_FILE="/path/to/output/file"
SLEEP_TIME=5
while true
do
# 获取当前 CPU 占用率排名前10的进程信息,并写入输出文件
ps aux --sort=-%cpu | head -n 11 > $OUTPUT_FILE
# 等待指定时间间隔
sleep $SLEEP_TIME
done
```
脚本的逻辑很简单,就是一个死循环,每次循环中获取当前 CPU 占用率排名前10的进程信息,并写入输出文件中,然后等待指定的时间间隔,以便下一次循环执行。
执行结果可能类似如下:
```
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 4571 17.8 2.8 1465680 449580 ? Sl 2021 285:13 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 8808 3.5 0.0 12580 1912 pts/0 R+ 10:35 0:00 ps aux --sort=-%cpu
root 1945 2.7 0.8 1012504 142660 ? Ssl 2021 80:11 /usr/bin/containerd
...
```
每5秒钟输出一次,输出到指定文件路径中。