iostat
是一个用于监测系统磁盘 I/O 活动的强大工具,常用于性能监控和故障排查。然而,手动运行 iostat
命令来收集数据既繁琐又耗时。为了提高效率并实现更深入的分析,编写一个自动化脚本可以定期执行 iostat
并将结果存储或发送给管理员。
iostat
命令cron
用于定时任务mailx
sudo yum install -y sysstat mailx
在 /root
目录下创建一个名为 iostat_report.sh
的脚本文件。
vi /root/iostat_report.sh
将以下内容粘贴到该文件中:
#!/bin/bash
# 设置 iostat 参数,根据需求调整
interval=5 # 每次测量间隔时间(秒)
count=10 # 测量次数
# 定义日志文件路径
log_file="/var/log/iostat_report.log"
# 执行 iostat 命令并将结果写入日志文件
echo "iostat report on $(date)" >> $log_file
iostat -dx ${interval} ${count} | tee -a $log_file
# 发送邮件提醒(可选)
mailx -s "iostat Report" your-email@example.com < $log_file
chmod +x /root/iostat_report.sh
编辑 crontab 文件,添加一个定时任务以每小时运行一次该脚本。
crontab -e
添加以下行:
0 * * * * /root/iostat_report.sh > /dev/null 2>&1
这表示在每一小时的第0分钟执行 iostat_report.sh
脚本,同时将输出重定向到 /dev/null
以避免邮件发送。
通过上述步骤,您可以轻松地将 iostat
监控集成到您的日常运维工作中。定期生成的报告可以帮助您更好地管理磁盘 I/O 活动,并及时发现潜在问题。