Linuxファイルサーバで、USBHDDの電源を長期的に入れておく場合に、定期的にUSBHDDをスピンダウンし、動作音を抑える方法が下記サイトで紹介されています。
8.USBHDDの定期的なスピンダウン方法(騒音対策) – RaspberryPiで各種サーバー作り! – ある阪大生の物置小屋
このスクリプトを、USBHDDを抜き差ししても問題ないように一部改造しました。
下記のスクリプトです。
hdd_spindown.sh
get_dev() {
while [ true ]; do
disk=`ls -l /dev/disk/by-uuid | grep $1`
if [ “$disk” ]; then
break
fi
count=$interval
sleep 10
done
echo `echo “$disk” |sed -E ‘s/^.+\///’`
}
if [ $# -lt 2 ]; then
echo “not enough arguments supplied.”
echo “hdd_spindown.sh [UUID] [INTERVAL]”
exit 0
fi
uuid=$1
interval=$2
count=$interval
up=1
while [ true ]; do
sleep 10
disk=`get_dev $uuid`
count=$(($count-10))
newstate=`grep ” $disk ” /proc/diskstats`
if [ “$state” = “$newstate” ]; then
if [ $count -lt 0 ]; then
count=$interval
if [ $up = 1 ]; then
sync
state=`grep ” $disk ” /proc/diskstats`
#hdparmを利用するとき
hdparm -y /dev/$disk > /dev/null 2>&1
#sdparmを利用するとき
sdparm –command=stop -r /dev/$disk > /dev/null 2>&1
up=0
fi
fi
else
count=$interval
state=”$newstate”
up=1
fi
done
コメント