用Shell语言编写一个脚本,用来查看所有进程占用CPU和磁盘空间的情况
时间: 2024-05-08 22:20:37 浏览: 10
以下是一个简单的Shell脚本,可以查看所有进程占用CPU和磁盘空间的情况:
```shell
#!/bin/bash
# 获取所有进程ID
pids=$(ps axo pid | sed '1d')
# 遍历所有进程
for pid in $pids
do
# 获取进程的CPU占用情况
cpu=$(ps -p $pid -o %cpu | sed '1d')
# 获取进程的磁盘空间占用情况
disk=$(du -sh /proc/$pid | awk '{print $1}')
# 输出进程ID、CPU占用、磁盘空间占用情况
echo "PID: $pid, CPU: $cpu%, Disk: $disk"
done
```
该脚本首先获取所有进程的ID,然后遍历所有进程,针对每个进程获取其CPU占用和磁盘空间占用情况,并将结果输出到终端。请注意,该脚本需要以root权限运行才能查看所有进程的磁盘空间占用情况。
相关问题
用Shell语言查看所有进程占用CPU和磁盘空间的情况
可以使用以下命令来查看所有进程占用CPU和磁盘空间的情况:
```
top -o %CPU
```
该命令可以按照CPU使用率进行排序,从而让你可以看到哪些进程占用了最多的CPU资源。如果你想看磁盘空间的情况,可以使用以下命令:
```
du -sh /path/to/directory/*
```
该命令会列出指定目录下所有文件和子目录的大小。你可以根据需要修改路径来查看不同目录下的情况。
使用shell编写一个监控主机内存cpu磁盘空间大小的脚本
可以使用以下的 shell 脚本来监控主机的内存、CPU 和磁盘空间大小:
```shell
#!/bin/bash
# 获取当前时间
now=$(date +"%Y-%m-%d %H:%M:%S")
# 获取主机名
hostname=$(hostname)
# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep load | awk '{printf "%.2f%%\n", $(NF-2)}')
# 获取内存使用情况
mem_usage=$(free -m | awk 'NR==2{printf "%.2f%%\n", $3*100/$2}')
# 获取磁盘空间使用情况
disk_usage=$(df -h | awk '$NF=="/"{printf "%s\n", $5}')
# 输出监控结果
echo "$now - $hostname - CPU使用率: $cpu_usage - 内存使用率: $mem_usage - 磁盘空间使用率: $disk_usage"
```
这个脚本会输出当前时间、主机名、CPU 使用率、内存使用率和磁盘空间使用率。你可以将这个脚本保存为一个文件,比如 `monitor.sh`,然后在命令行中运行 `bash monitor.sh` 来执行它。你也可以将它添加到 crontab 中,让它每隔一段时间自动运行。