用shell写一个监控磁盘使用率的脚本
时间: 2023-11-24 18:05:30 浏览: 53
以下是一个简单的Shell脚本,可以监控磁盘使用率:
```
#!/bin/bash
# 设置监控磁盘的路径和阈值
DISK_PATH="/dev/sda1"
THRESHOLD="90"
while true
do
# 获取磁盘使用率
DISK_USAGE=$(df -h | grep $DISK_PATH | awk '{print $5}' | sed 's/%//')
# 判断是否超过阈值
if [ $DISK_USAGE -gt $THRESHOLD ]
then
echo "磁盘使用率已超过阈值,当前使用率为 $DISK_USAGE%"
# 发送邮件或其他提醒方式
# ...
sleep 3600 # 等待1小时再进行下一次检查
else
sleep 60 # 等待1分钟再进行下一次检查
fi
done
```
该脚本使用了一个while循环,不断地获取磁盘使用率并与设定的阈值进行比较。如果磁盘使用率超过阈值,则可以通过邮件或其他提醒方式发送警告信息。脚本每次检查之间都会有一个固定的等待时间,以避免过于频繁地检查磁盘使用率。
相关问题
监控磁盘io使用率的shell脚本
可以使用下面的 shell 脚本来监控磁盘 io 使用率:
```shell
#!/bin/bash
DISK=sda
INTERVAL=1 #每秒采样一次
while true
do
iostat -x $DISK $INTERVAL 2 | awk 'NR==4 {print $14}' #取第 4 行的第 14 个字段
done
```
这个脚本使用 `iostat` 命令来获取磁盘 io 使用率,`DISK` 变量指定了要监控的磁盘,可以根据实际情况修改。`INTERVAL` 变量指定了采样间隔,这里设置为每秒采样一次。
脚本中的 `awk` 命令用于从 `iostat` 命令输出中提取出磁盘 io 使用率,具体解释如下:
- `NR==4` 表示只处理第 4 行;
- `$14` 表示取第 14 个字段,也就是磁盘的平均 io 使用率。
脚本会不停地输出磁盘 io 使用率,可以使用 Ctrl+C 来停止脚本的执行。
编写一个脚本监控磁盘io使用率和磁盘延迟
你可以使用 shell 脚本或者其他编程语言(如 Python)来监控磁盘 IO 使用率和磁盘延迟。下面是一个基于 shell 的脚本的示例:
```
#!/bin/bash
# 获取当前磁盘 IO 使用率
io_util=$(iostat -d -x 1 2 | awk 'NR==4 {print $14}')
# 获取当前磁盘延迟
disk_latency=$(iostat -d -x 1 2 | awk 'NR==4 {print $6}')
# 输出磁盘 IO 使用率和磁盘延迟
echo "磁盘 IO 使用率:$io_util%"
echo "磁盘延迟:$disk_latency ms"
```
上面的脚本使用了 `iostat` 命令来获取磁盘 IO 使用率和磁盘延迟。你可以通过 `cron` 或者其他方式来定期执行该脚本,以达到监控磁盘 IO 使用率和磁盘延迟的目的。
如果你想使用 Python 来监控磁盘 IO 使用率和磁盘延迟,你可以使用 Python 的第三方库,如 `psutil`。下面是一个示例:
```
import psutil
import time
# 获取当前磁盘 IO 使用率
io_util = psutil.disk_io_counters().busy
time.sleep(1)
io_util = (psutil.disk_io_counters().busy - io_util) / 1000 / 1000
# 获取当前磁盘延迟
disk_latency = psutil.disk_io_counters().read_time / 1000 / 1000
# 输出磁盘 IO 使用率和磁盘延迟
print("磁盘 IO 使用率:{:.2f}%".format(io_util))
print("磁盘延