用Shell语言编写一个脚本,用来查看所有进程占用CPU和磁盘空间的情况
时间: 2024-05-08 08:20:37 浏览: 86
以下是一个简单的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权限运行才能查看所有进程的磁盘空间占用情况。
相关问题
linux环境下,写一个脚本,监控服务器的能记录服务器某一时间 cpu使用率,内存的使用率,磁盘的使用情况,最占用服务器cpu资源top5的进程名称
Ok,您好。针对您的问题,可以编写一个Shell脚本,在Linux环境下实现监控服务器的功能。具体实现如下:
```shell
#!/bin/bash
TIME=$(date "+%Y-%m-%d %H:%M:%S") # 获取当前时间
# 获取CPU使用率
CPU_USAGE=$(top -n 1 -b | grep '%Cpu' | awk '{print $2}')
# 获取内存使用率
MEM_USED=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 获取磁盘使用情况
DISK_USED=$(df -h | awk '{if($NF=="/") print $5}')
# 获取占用CPU资源最高的前5个进程名称
CPU_TOP_5=$(ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 6 | tail -n 5 | awk '{print $NF}')
# 将结果输出到文件中
echo "${TIME} CPU使用率:${CPU_USAGE}%" >> monitor.log
echo "${TIME} 内存使用率:${MEM_USED}%" >> monitor.log
echo "${TIME} 磁盘使用率:${DISK_USED}" >> monitor.log
echo "${TIME} 占用CPU资源最高的前5个进程名称:${CPU_TOP_5}" >> monitor.log
```
执行以上脚本后,会将服务器的CPU使用率、内存使用率、磁盘使用情况和占用CPU资源最高的前5个进程名称,记录在monitor.log文件中。这样,您就可以及时了解并监控服务器的运行状况了。
顺便一提,以上仅为本人在CSDN开发的ChitGPT通过机器学习生成的回答,不涉及人工判断,仅供参考。
linux环境下,写一个脚本,监控服务器的,能记录服务器某一时间 cpu使用率,内存的使用率,磁盘的使用情况,最占用服务器cpu资源top5的进程名称
好的,这是一个技术问题,我可以帮助你解决。你可以编写一个Shell脚本,使用Linux系统自带的命令来监控服务器状态。以下是一个示例脚本:
```
#!/bin/bash
# 获取当前时间
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# 获取CPU使用率
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 获取内存使用率
MEMORY=$(free | awk '/Mem/{printf("%.2f\n"), $3/$2*100}')
# 获取磁盘使用情况
DISK=$(df -h / | awk '/\//{printf "%d/%dGB (%s)\n", $3,$2,$5}')
# 获取CPU占用最高的前5个进程名称
TOP5=$(ps aux --sort=-%cpu | head -n 6 | awk '{print $11}' | tail -n +2)
# 将结果输出到日志文件
echo "$DATE CPU使用率:$CPU%" >> server_status.log
echo "$DATE 内存使用率:$MEMORY%" >> server_status.log
echo "$DATE 磁盘使用情况:$DISK" >> server_status.log
echo "$DATE CPU占用最高的前5个进程:$TOP5" >> server_status.log
```
你可以将此脚本添加到crontab定时任务中,定时执行即可。
请注意,此脚本仅供参考,你需要根据系统的具体情况进行相应的修改。另外,为了确保服务器的安全性,请不要将日志文件存储在敏感目录下。
阅读全文