Désactivation des disques durs inutilisés

J'ai un PC exécutant le serveur Ubuntu 12.10 comme mon serveur personnel personnalisé. Il existe un certain nombre de disques durs connectés via USB. Le serveur fonctionne 24-7 et je me demandais s'il y avait des moyens ou des commandes qui peuvent être utilisées pour éteindre les disques si elles ne sont pas utilisées et une fois qu'une requête de lecture / écriture pour le lecteur est soumise, les lecteurs seront automatiquement Allumé à nouveau pour gérer la demande?

Donc, je veux essentiellement un script qui peut faire ce qui suit (si ce n'est pas un creux dans le noyau Linux):

  1. Si aucune demande de lecture / écriture pour conduire X n'a ​​été soumise pour y minutes, tournez X et rappelez-vous que X a été connecté.

  2. Si une requête de lecture / écriture est envoyée pour X, activez X et gérez la requête.

  3. Commencez à partir de 1 à nouveau.

Certains de ces lecteurs contiennent des données que je n'utilise parfois pas pendant des semaines et des mois, donc je ne veux pas que leur durée de vie soit réduite en restant assis en mode veille. Et je ne veux pas activer / désactiver les lecteurs à chaque fois que je les utilise.

Je pense que vous recherchez l'utilitaire hdparm qui vous permet de jouer avec les paramètres du lecteur.

Les lecteurs différents prennent différents paramètres, et différents disques ont différents niveaux de support, par exemple -J wukk définit un délai d'inactivité WD Green Drive. (Mais vous voulez probablement quelque chose comme -S ou peut-être, mais l'homme hdparm fournira le bas.

Si vous voulez un contrôle tellement précis, vous devez probablement éteindre la gestion de l'alimentation des disques et le faire vous-même: maintenez un programme en cours d'exécution (ou faites-le démarrer toutes les x minutes) qui examine les données d'accès des disques dans eg / sys / block / Sda / sda9 / stat. Si votre script détecte qu'il n'y a pas eu d'accès pendant votre période de seuil, vous réduisez le disque respectif (si ce n'est pas le cas).