Skip to content

Instantly share code, notes, and snippets.

@t-model
Created July 28, 2017 15:37
Show Gist options
  • Save t-model/b92de3222d774b6163c590893ff5a4f1 to your computer and use it in GitHub Desktop.
Save t-model/b92de3222d774b6163c590893ff5a4f1 to your computer and use it in GitHub Desktop.
外付けHDDのauto spindown
#!/bin/sh
FILELASTSTAT='/run/sdaidle_laststat'
FILELASTMODE='/run/sdaidle_lastmode'
# define
MODESPINDOWN="spindown"
MODEUP="up"
#
# from file
LASTSTAT=`cat $FILELASTSTAT`
CURSTAT=`cat /proc/diskstats | /bin/grep 'sda '`
LASTMODE=`cat $FILELASTMODE`
# debug
#echo "file:$FILELASTSTAT"
#echo "mode:$FILELASTMODE"
#echo "last:$LASTSTAT"
#echo "curr:$CURSTAT"
# for first boot
if [ ! -e $FILELASTSTAT ]; then
touch $FILELASTSTAT
fi
if [ ! -e $FILELASTMODE ]; then
touch $FILELASTMODE
fi
#
if [ "$LASTSTAT" = "$CURSTAT" ]; then
if [ ! "$LASTMODE" = "$MODESPINDOWN" ]; then
/sbin/hdparm -y /dev/sda
echo "$MODESPINDOWN" > $FILELASTMODE
fi
else
if [ "$LASTMODE" = "$MODESPINDOWN" ]; then
echo "$MODEUP" > $FILELASTMODE
fi
fi
echo "$CURSTAT" > $FILELASTSTAT
@t-model
Copy link
Author

t-model commented Jul 28, 2017

ODROID xu4 に接続した 外付けHDD、hdparm -m 効かないようだし、ずっと回りっぱなしなので、やっつけ作成。

  • rootユーザのcrontabへ 10分間隔で実行するよう登録
  • 理論的には最大20分で止まる。
    spinupからだと最大30分になるがまぁ、誤差の範囲。
  • /runは、tmpfsのディレクトリなので、フラッシュドライブは劣化しないだろう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment