SmartMonTools: come posso sapere se c'è qualche test smartctl in esecuzione sul mio disco rigido?


40

Sto testando un disco rigido con SmartMonTools .

Stato del disco rigido prima dei test (solo un breve test eseguito giorni fa):

$ 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         -

Quindi inizio il lungo 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.

Il test dovrebbe essere in esecuzione , quindi, ma se provo a vedere i suoi progressi:

$ 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         -

... tutto quello che ottengo sono gli stessi risultati, come se non ci fossero test in esecuzione / esecuzione in questo momento.
Il parametro '-H' non fornisce ulteriori informazioni:

$ 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

E, fintanto che non è in esecuzione alcun processo (questo test viene eseguito solo dal controller del disco rigido), una ps -ericerca di stile non dovrebbe aiutare.

Come faccio a sapere se è in esecuzione un autotest SMART in questo momento?

Risposte:


43

In smartctl -a <device>cerca di Self-test execution status.

Esempio quando non è in esecuzione alcun test:

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

Esempio durante l'esecuzione di un test:

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

Quando si esegue l'autotest selettivo ( -t select), verranno visualizzati anche i progressi qui:

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)

2
Una buona idea. Ti suggerisco di aggiungere questa linea diretta (tramite il grepping) come possibilità:, smartctl -a /dev/sda | grep "progress" -i -A 1per tagliare la stampa di informazioni eccessive.
Sopalajo de Arrierez,

1
Tuttavia, è necessaria una stampa eccessiva per ottenere l'intera immagine. In uno script il grep può andare bene, ma le persone che vengono utilizzati per greptutto sulla linea di comando ( dmesg | grep something, smartctl -a | grep ..., ecc), che mancherà cose. Con smartctlin particolare non esiste un semplice comando che ti dica che va tutto bene ... smartctl -Hè un falso amico in tal senso.
frostschutz,

@frostschutz "smartctl -H è un falso amico al riguardo." Puoi dirlo di nuovo! Anch'io mi sono innamorato di questa opzione una volta, pensando che potesse avere a che fare con gli autotest ... ma no, soggetto (e scopo) completamente diversi.
syntaxerror,

Cosa devo fare per "Il dispositivo non supporta la registrazione di autotest"?
Mr.WorshipMe

13

Provare :

smartctl -c /dev/sda

se / dev / sda è l'unità che si desidera controllare.


Modifica: mi dispiace. Mi sbagliavo. -c significa - capacità ma mostra anche l'avanzamento del test corrente. come60% of test remaining.
JPT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.