Est-il possible de planifier (7 jours) le temps de sommeil d'un disque dur?

9

Je cherche un moyen de planifier quand un disque dur externe connecté à ma boîte Linux (Debian 9) se met en veille (arrête de tourner).

Pour mettre cela dans le contenu: j'ai une boîte Linux qui fonctionne comme un serveur multimédia. Si un appel est effectué pour récupérer du contenu qui se trouve sur le disque dur externe, il faut souvent 15 à 30 secondes pour que le disque dur se réveille et commence à tourner, ce qui a) est frustrant et b) provoque parfois des délais d'attente avec le serveur multimédia. Je pourrais configurer le disque dur pour qu'il soit éveillé et tourne 24 heures sur 24, 7 jours sur 7, mais cela semble un gaspillage lorsque la plupart du temps, je n'utilise le serveur multimédia que lorsque je suis à la maison.

Existe-t-il un outil ou une commande logicielle que je pourrais utiliser pour définir un horaire hebdomadaire de rotation du disque dur - par exemple, du lundi au vendredi: TOURNAGE entre 17 h et 23 h; samedi-dimanche: TOURNAGE entre 15 h et 23 h; minuterie système

Alex Ward
la source
1
Vous réduisez donc le temps d'exécution du disque, mais vous démarrez / arrêtez votre disque -40 fois par semaine. Démarrer / arrêter un disque n'est pas sans coût. À moins que l'électricité ne coûte très cher où que vous soyez, cela ne vaut peut-être pas la peine.
waltinator le
1
Les disques durs @waltinator Modern sont conçus pour gérer des centaines de milliers de cycles de démarrage / arrêt, donc avoir un cycle par jour n'est absolument pas nocif. Il faudra littéralement mille ans pour tuer le disque dur d'un nombre excessif de ralentissements à ce rythme. Si quoi que ce soit, je serais plus préoccupé par des heures de filature inutile.
Dmitry Grigoryev
@waltinator Fair argument, mais le fait est que cela entraînerait en fait une DIMINUTION nette des tours / baisses, car au moment où il tourne plus ou moins chaque fois que du contenu est demandé au serveur multimédia, en particulier pendant la fois que je veux planifier. Comme vous le dites, cela coûte probablement plus d'énergie à chaque fois que le disque tourne - donc le laisser tourner le soir réduirait probablement la consommation d'énergie.
Alex Ward

Réponses:

17

Un cronjob permettrait ceci:

# 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/...
Stephen Kitt
la source