ハードドライブのスリープ時間を(7日間)スケジュールすることは可能ですか?

ハードドライブのスリープ時間を(7日間)スケジュールすることは可能ですか?

Linux (Debian 9) ボックスに接続された外付けハードドライブがスリープ状態 (回転を停止) になるタイミングをスケジュールする方法を探しています。

これをコンテンツに当てはめると、私はマルチメディア サーバーとして動作する Linux ボックスを持っています。外付けハード ドライブにあるコンテンツを取得する呼び出しが行われると、ハード ドライブが起動して回転を開始するまでに 15 ~ 30 秒かかることが多く、これは a) イライラさせられるだけでなく、b) マルチメディア サーバーでタイムアウトが発生することもあります。ハード ドライブを 24 時間 365 日起動して回転するように設定することもできますが、ほとんどの場合、マルチメディア サーバーは自宅にいるときにしか使用しないので、これは無駄に思えます。

ハードドライブの回転時間を毎週設定できるソフトウェアツールやコマンドはありますか?たとえば、月曜日から金曜日:午後 5 時から午後 11 時まで回転、土曜日から日曜日:午後 3 時から午後 11 時まで回転、それ以外の場合はオンデマンドで回転し、システムタイマーに従ってスリープするなどです。

答え1

cronjob を使用すると次のことが可能になります:

# At 11pm every day, enable sleep after 30s
0 23 * * * /sbin/hdparm -S6 /dev/disk/by-id/...

# At 5pm on weekdays, disable sleeping
0 17 * * 1-5 /sbin/hdparm -S0 /dev/disk/by-id/...

# At 3pm on the weekend, disable sleeping
0 15 * * 0,6 /sbin/hdparm -S0 /dev/disk/by-id/...

関連情報