linux下硬盘的spindown脚本

系统怪起来就很怪,继续是家里那部做文件服务器的机器问题,继续是raid问题,之前做raid的那两个绿盘是支持用hdparm来实现硬盘休眠的,即是spindown吧,但系统有debian5升级到debian6和前阵子raid1阵列出现折腾后,昨天才发觉这两个绿盘不能休眠了.
之前的hdparm -S 120 /dev/sdb命令是有效的,但现在居然不行了,是两个绿盘都不行了.

最后在网上找了段脚本放在cron里每隔15分钟执行,实现阵列的两个WD绿盘硬盘休眠, 还是需要hdparm来配合使用:

#!/bin/bash
if [ ! -f /dev/shm/1 ]
then
touch /dev/shm/1 /dev/shm/2
echo "$(date '+%F %T') Tempfile does not exist, creating" >> /var/log/hd_spindown.log
fi
mv /dev/shm/1 /dev/shm/2
sleep 12
cat /proc/diskstats > /dev/shm/1

HDB="sdb"
HDC="sdc"
export HD="sdb\|sdc"

if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $HD )" = "" ]
then
if [ "$(/sbin/hdparm -C /dev/$HDB | grep "drive state" | cut -d: -f2 | awk '{ print $1}')" = "standby" ] && [ "$(/sbin/hdparm -C /dev/$HDC | grep "drive state" | cut -d: -f2 | awk '{ print $1}')" = "standby" ]
then
echo "$(date '+%F %T') $HD already spun down" >> /var/log/hd_spindown.log
else
/sbin/hdparm -y /dev/$HDB &
/sbin/hdparm -y /dev/$HDC
echo "$(date '+%F %T') Spindown $HD" >> /var/log/hd_spindown.log
fi
else
echo "$(date '+%F %T') $HD is in use" >> /var/log/hd_spindown.log
fi

路过的需要使用的话可以点击这里下载: yingpan2.sh
这是监视两个硬盘的,可以改成检测单个硬盘的.

关于无聊人

一个无聊人而已
此条目发表在Linux分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注