Créer un monitoring de votre disque avec hdparm et cron

De Wiki PC, Wiki Informatique.

Sommaire

Introdution

But de la manoeuvre

Avec le problème du laptop mode (et plus généralement, puisque le laptop mode n'est au final pas vraiment le problème, le le problème de la gestion de l'énergie au niveau du disque dur) et notamment du parcage des têtes observé sur les ordinateurs portables, il peut être très important de vérifier si l'on est concerné par le problème ou pas, afin d'éviter de crasher prématurément son disque dur (note : on explique ici la procédure afin de vérifier si un système linux est touché, mais le problème peut être présent sur les OS Windows, cf le lien "laptop mode" précédemment donné).

Aussi, étant donné qu'il faut, pour savoi si le problème nous concerne, vérifier de manière régulière le nombre de parcages de la tête, nous allons automatiser la tâche afin de ne pas avoir à passer une journée entière à lancer des commandes toutes les heures et à noter leurs valeurs afin de vérifier, en fin de journée, si les chiffres présentent les symptômes du problème ou pas.

Outils utilisés

Pour cela nous allons utiliser les outils & commandes suivants :

  • cron (commande crontab)
  • vi (éditeur de texte)
  • su (pour passer en root)
  • hdparm, tel que décrit dans le lien vers "laptop mode"


Si vous n'avez jamais utilisé la console, c'est le moment de vous y mettre, absolument aucune manipulation faite dans cette procédure n'est graphique.

Outils nécessaires

Il va de soi qu'il faut que vous ayiez cron d'installé, ainsi que crontab (en général installé par défaut), vi (si vous l'avez pas, vous êtes pas sous GNU/Linux !) et hdparm (idem, installé par défaut dans 95% des cas).

Il faut avoir précédemment vérifié que le disque dur est compatible avec les commandes de hdparm en suivant les instructions de préparation.

Commençons !


Mise en place du fichier à exécuter

Nous allons créer un .sh dans lequel la commande à exécuter sera située.


Commençons par créer le futur fichier accueillant les données :

vi ./hdparmlog.log

Vous voici dans vi, passez en mode "INSERTION" en appuyant sur SHIFT + I . Appuyez sur ENTRÉE pour créer une ligne vide. Appuyez sur CTRL + ALT + I pour sortir du mode insertion. Appuyez sur tapez :wq puis appuyez sur ENTRÉE . Votre fichier vide est créé.


Maintenant, le fichier exécutable :

Note : on utilise ici la commande su, pour les systèmes comme Fedora, pour les systèmes utilisant le sudo, il faudra mettre un sudo devant chaque ligne à taper en console entre le "su - " et le "exit" (sort de la session root)

su -
vi ./runhdparmlogs.sh

Vous voici dans vi, avec un nouveau fichier.

Passez en mode "INSERTION" en appuyant sur SHIFT + I .

Collez ceci dans le fichier (CTRL + SHIFT + V sous Konsole) :

#!/bin/bash
datetime=`date '+%d/%m/%Y %k:%M'`

echo "

Logged on ${datetime} :

" >> /home/_VOTRE_UTILISATEUR_/hdparmlog.log

## PENSEZ A REMPLACER DANS LA LIGNE SUIVANTE ET DANS LA LIGNE PRÉCÉDENTE LE "_VOTRE_UTILISATEUR_" PAR LE NOM DE VOTRE SESSION (toto, albert, jean...)

/usr/sbin/smartctl -a `mount | grep '/ ' | cut -d' ' -f1 | sed -e 's#[0-9]##'` | egrep 'Cycle|Power' >> /home/_VOTRE_UTILISATEUR_/hdparmlog.log 2>&1


Appuyez sur CTRL + ALT + I pour sortir du mode insertion.

Appuyez sur tapez :wq puis appuyez sur ENTRÉE .

Votre fichier d'exécution est créée dans /root .

Donnons lui la possibilité d'être exécuté :

chmod +x ./runhdparmlogs.sh


Automatiser l'exécution avec cron et crontab -e

Nous allons maintenant passer à la partir la plus simple (si si, encore plus simple que précédemment) : l'automatisation.

Pour cela, nous allons utiliser la commande crontab, retournez en root si vous en êtes sorti, ne faites rien si vous n'en êtes pas sorti, et pensez à utiliser le sudo si vous êtes un sudo user : PENSEZ A ETRE EN ROOT OU EN SUDO C'EST IMPÉRATIF ! !

crontab -e

Un nouveau fichier s'ouvre, vierge si vous ne l'avez jamais utilisé : Note : ici l'éditeur par défaut pour crontab -e est vi, si vous utilisez nano les commandes de sauvegarde, insertion, etc. sont décrites en bas de la console . Utilisez les mêmes commandes que précédemment pour passer en mode insertion.

Collez le texte suivant dans le fichier :

* */1 * * * /root/runhdparmlog.sh

Tapez :wq puis ENTRÉE pour enregistrer et sortir...

Les message suivant devrait s'afficher :

crontab: installing new crontab

Maintenant, quittons la session root :

exit

Voilà, la procédure est terminée. Le fichier hdparmlog.log qui se trouve dans votre répertoire personnel ( home ) va être mis à jour toutes les heures avec les informations données par hdparm à ce moment là.

Vous n'aurez plus qu'à regarder au bout de quelque jour et regarder si heure après heure le chiffre des Load Cycle Coun augmente trop vite ou pas. (note : attention cela peut varier en fonction de si l'ordinateur est sur batterie ou pas, hdparm ne l'indiquera pas dans le log ça... ).

Le fichier a normalement été créé sous votre utilisateur et donc vous pouvez le regarder (et même le modifier !) mais attention ne le supprimez pas il ne sera pas recréé automatiquement !!.

Outils personnels