Suspendre un disque dur après 3 minutes sans usage
Certains services peuvent faire une requête après une minute. On ne peut donc pas arrêter le disque après 60.
Voici un script /usr/scripts/suspendWDUSB.sh qui arrête le disque après un temps paramétrable (180s par défaut) :
#!/bin/bash
# Read /sys/block/DISK/stat. If there is no change since three minutes, shut down the disk in idle
# Do not put the /dev before disk identifier
DISK="sdb"
CACHEFILE="/run/suspendWDUSB"
STATEFILE="/run/suspendWDUSB.state"
UNUSEDTIME=180
# End of configuration
SYS="/sys/block/$DISK/stat"
DEV="/dev/$DISK"
if [ ! -f $SYS ]; then
  echo "$0 : Disk $DISK not available in $SYS"
  exit 1
fi
if [ ! -e $DEV ]; then
  echo "$0 : Disk $DISK not available in $DEV"
  exit 2
fi
if [ ! -f $CACHEFILE ]; then
  echo "First start" | logger -p local0.info -t suspendWDUSB
  cat $SYS > $CACHEFILE
else
  if [ "`cat $CACHEFILE`" != "`cat $SYS`" ]; then
    #echo "Changed : Stay up" | logger -p local0.info -t suspendWDUSB
    cat $SYS > $CACHEFILE
    touch $STATEFILE
  else
    if [ $(($(date +%s) - $(date +%s -r $CACHEFILE))) -gt  $UNUSEDTIME ] &&
       [ -f $STATEFILE ]; then
      echo "Disk not used in the $UNUSEDTIME seconds : go to sleep now" | logger -p local0.info -t suspendWDUSB
      /sbin/hdparm -y $DEV >/dev/null 2>/dev/null
      rm -f $STATEFILE
    fi
  fi
fi
Activer ce script par cron : /etc/cron.d/suspendWDUSB :
* * * * * root /usr/scripts/suspendWDUSB.sh
