smartmontools/smartctlに必要な時間を自動的に待つことはできますか?

smartmontools/smartctlに必要な時間を自動的に待つことはできますか?
Can we do something like this in a script (preferably zsh):

smartctl -t long /dev/sda
smartctl -t long /dev/sdb
smartctl -t long /dev/sdc

[Wait however long smartctl needs]

smartctl -H /dev/sda
smartctl -H /dev/sdb
smartctl -H /dev/sdc

明らかに私はこれを自動化したいと思います。

ベストアンサー1

2つの可能性があります。smartctl -c以下を含むデバイスの機能が一覧表示されます。

Short self-test routine 
recommended polling time:      (   1) minutes.
Extended self-test routine
recommended polling time:      (  48) minutes.

だからこの記事を読んで、必要なだけ短くまたは長く眠ります。

次に、テストの進行中に同じ-cオプションを使用すると、すべてのテストの現在の状態が一覧表示されます。たとえば、次のようになります。

Offline data collection status:  (0x03) Offline data collection activity
  is in progress.
Self-test execution status:      ( 247) Self-test routine in progress...
  70% of test remaining.
Total time to complete Offline 
data collection:    (   44) seconds.

したがって、数分ごとにポーリングして残りの時間がゼロに戻り、他のフィールドに最終値があるまで待つことができます。

Offline data collection status:  (0x02) Offline data collection activity
  was completed without error.
Self-test execution status:      (   0) The previous self-test routine completed
  without error or no self-test has ever 
  been run.
Total time to complete Offline 
data collection:    (    0) seconds.

おすすめ記事