Linux下磁盘监控脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下磁盘监控脚本相关的知识,希望对你有一定的参考价值。

九月份偷了下懒,补上一篇


注释:shell脚本,需要fio工具,实时监控磁盘的读写性能

#!/bin/bash
DATE=$(date +%m-%d)
iosTATLOG=/var/log/iostat${DATE}.log
FIOLOG=/var/log/fio${DATE}.log

/bin/ps -ef |grep "iostat -dk 5" | grep -v grep > /dev/null

if [ $? == 0 ]
then
echo "Disk monitor already running"
exit 1
else
/usr/bin/iostat -dk 5 >>$IOSTATLOG &
pid=$!
fi

while true
do

echo "-------------`date`--------">>$FIOLOG
echo "--------------fio test---------------------">>$FIOLOG
######随机读:
echo "-------------随机读s----------------">>$FIOLOG
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=4096M -numjobs=10 -runtime=1000 -group_reporting -name=mytest >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=128k -size=4096M -numjobs=10 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=1M -size=4096M -numjobs=10 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
#####顺序读:
echo "-------------顺序读----------------">>$FIOLOG
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=128k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=1M -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1

#####随机写:
echo "-------------随机写----------------">>$FIOLOG
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=128k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=1M -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1

#####顺序写:
echo "-------------顺序写----------------">>$FIOLOG
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=128k -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=1M -size=4096M -numjobs=30 -runtime=1000 -group_reporting -name=mytest  >>$FIOLOG 2>&1

#####混合随机读写:
echo "-------------混合随机读写----------------">>$FIOLOG
#######4k
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=4096M -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop  >>$FIOLOG 2>&1
#######128k
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=128k -size=4096M -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop  >>$FIOLOG 2>&1
#######1M
fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=1M -size=4096M -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop  >>$FIOLOG 2>&1

sleep 60
done


本文出自 “DanielQu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1859968

以上是关于Linux下磁盘监控脚本的主要内容,如果未能解决你的问题,请参考以下文章

Linux下Shell脚本实战之监测磁盘空间

Linux之Shell脚本实战监控系统的磁盘空间使用率

Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件

如何监控linux阿里云磁盘空间

用 Linux Shell 脚本来监控磁盘使用情况并发送邮件 | Linux 中国

linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志