编辑
2023-05-25
运维
00
请注意,本文编写于 482 天前,最后修改于 482 天前,其中某些信息可能已经过时。
bash
#!/bin/bash # 监测磁盘I/O monitor_disk_io() { local device=$1 echo "正在监测磁盘I/O: $device" echo "按 Ctrl+C 结束监测" echo while true; do # 获取磁盘I/O信息 io_stats=$(cat "/sys/block/$device/stat") read_completed=$(awk '{print $1}' <<< "$io_stats") read_merged=$(awk '{print $2}' <<< "$io_stats") read_sectors=$(awk '{print $3}' <<< "$io_stats") read_time=$(awk '{print $4}' <<< "$io_stats") write_completed=$(awk '{print $5}' <<< "$io_stats") write_merged=$(awk '{print $6}' <<< "$io_stats") write_sectors=$(awk '{print $7}' <<< "$io_stats") write_time=$(awk '{print $8}' <<< "$io_stats") # 计算磁盘读取和写入速度 read_speed=$((read_sectors * 512 / read_time)) write_speed=$((write_sectors * 512 / write_time)) # 输出磁盘I/O信息 echo "磁盘设备: $device" echo "读取速度: $read_speed 字节/秒" echo "写入速度: $write_speed 字节/秒" echo "-----------------------------" sleep 1 done } # 主函数 main() { # 获取磁盘设备列表 disk_devices=$(lsblk -ndo NAME,TYPE | awk '$2=="disk" {print $1}') if [[ -z $disk_devices ]]; then echo "未找到可用的磁盘设备" exit 1 fi echo "可用的磁盘设备列表:" echo "$disk_devices" echo # 提示用户选择要监测的磁盘设备 read -p "请选择要监测的磁盘设备: " selected_device echo # 检查所选磁盘设备是否存在 if [[ ! $disk_devices =~ $selected_device ]]; then echo "选择的磁盘设备不存在" exit 1 fi # 开始监测磁盘I/O monitor_disk_io $selected_device } # 执行主函数 main
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Gustav

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!