写一个shell脚本,在FIO读写时,每隔2s/5s分别给单个硬盘发送smartctl -A/smartctl -a命令,记录硬盘性能值
时间: 2024-10-10 12:12:02 浏览: 37
编写一个Shell脚本来定期检查硬盘性能并记录SMART状态,你可以创建一个名为`check_disk_performance.sh`的文件,内容如下:
```bash
#!/bin/bash
# 硬盘设备名称,这里假设为'/dev/sda'
HDD Device="/dev/sda"
# 检查间隔时间,单位秒
INTERVAL_2S=2
INTERVAL_5S=5
# 输出日志文件名
LOG_FILE="disk_performance.log"
# 使用函数来运行SMART命令并记录结果
run_smart_command() {
local command="$1"
echo "$(date) - Running $command on $HDD Device" >> ${LOG_FILE}
smartctl "$command" "${HDD Device}" >> ${LOG_FILE} 2>&1
}
# 主循环开始
while true; do
# 每隔2秒执行一次
run_smart_command -A
sleep ${INTERVAL_2S}
# 每隔5秒再执行一次,覆盖之前的记录
run_smart_command -a
sleep ${INTERVAL_5S}
done
# 添加执行权限
chmod +x check_disk_performance.sh
# 启动脚本
./check_disk_performance.sh &
```
这个脚本会启动一个无限循环,每2秒运行一次`smartctl -A`命令,每次运行都会更新到`disk_performance.log`文件中。5秒后,它会再次运行`smartctl -a`命令替换之前的数据。
阅读全文