SmartMonTools: Comment savoir si un test smartctl est en cours d'exécution sur mon disque dur?

40

Je teste un disque dur avec SmartMonTools .

Etat du disque dur avant les tests (un seul court test effectué il y a plusieurs jours):

$ sudo smartctl -l selftest /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      5167         -

Alors je commence le long test :

$ sudo smartctl -t long /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 130 minutes for test to complete.
Test will complete after Sat May  9 16:05:27 2015

Use smartctl -X to abort test.

Le test est censé être en cours d'exécution , mais si j'essaie de voir sa progression:

$ sudo smartctl -l selftest /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      5167         -

... tout ce que j'obtiens, ce sont les mêmes résultats, comme s'il n'y avait pas de test en cours d'exécution / en cours d'exécution.
Le paramètre '-H' ne donne pas plus d'informations:

$ sudo smartctl -H /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Et, tant qu'aucun processus n'est en cours d'exécution (ce test est effectué uniquement par le contrôleur de disque dur), une ps -erecherche de style ne doit en aucun cas aider.

Comment savoir si un auto-test SMART est en cours d'exécution actuellement?

Sopalajo de Arrierez
la source

Réponses:

43

En smartctl -a <device>chercher Self-test execution status.

Exemple lorsqu'aucun test n'est en cours d'exécution:

Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.

Exemple en cours de test:

Self-test execution status:      ( 249) Self-test routine in progress...
                                        90% of test remaining.

Lors de l'exécution de l'autotest sélectif ( -t select), un progrès sera également présenté ici:

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA    MAX_LBA  CURRENT_TEST_STATUS
    1        0  125045423  Self_test_in_progress [90% left] (2881512-2947047)
Frostschutz
la source
2
Une bonne idée. Je vous suggère d’ajouter cette ligne directe (en faisant un grepping) comme une possibilité:, smartctl -a /dev/sda | grep "progress" -i -A 1pour couper l’impression d’informations excessive.
Sopalajo de Arrierez
1
Vous avez cependant besoin d'une impression excessive pour avoir une image complète. Dans un script grep peut - être bien, mais les gens qui sont habitués à greptout sur la ligne de commande ( dmesg | grep something, smartctl -a | grep ..., etc.), ils manqueront les choses. En smartctlparticulier, aucune commande simple ne vous dit que tout va bien ... smartctl -Hest un faux ami à cet égard.
Frostschutz
@frostschutz "smartctl -H est un faux ami à cet égard." Tu peux le répéter! Moi aussi, je suis tombé pour cette option une fois, pensant que cela pourrait avoir à voir avec les autotests ... mais non, sujet (et but) entièrement différent.
erreur de syntaxe le
Que dois-je faire pour "Le périphérique ne prend pas en charge la journalisation par autotest"?
Mr.WorshipMe
13

Essayez:

smartctl -c /dev/sda

si / dev / sda est le lecteur que vous voulez vérifier.

SebM
la source
Edit: Désolé. J'avais tort. -c signifie --capabilities mais il indique également la progression du test en cours. comme60% of test remaining.
JPT