Hard-Disk

為什麼 SCT 溫度歷史輸出中有“跳過”的溫度條目?

  • June 28, 2017

為了查看我 SSD 上的溫度歷史記錄,我使用了該smartctl -l scttemphist命令。輸出表明它正在跳過很多條目。為什麼要這樣做?我不認為這是因為它沒有拯救他們。

=== START OF READ SMART DATA SECTION ===
SCT Temperature History Version:     2
Temperature Sampling Period:         10 minutes
Temperature Logging Interval:        10 minutes
Min/Max recommended Temperature:      ?/ ? Celsius
Min/Max Temperature Limit:            ?/ ? Celsius
Temperature History Size (Index):    128 (0)

Index    Estimated Time   Temperature Celsius
  1    2017-06-26 18:20    30  ***********
...    ..(  3 skipped).    ..  ***********
  5    2017-06-26 19:00    30  ***********
  6    2017-06-26 19:10    31  ************
  7    2017-06-26 19:20    30  ***********
...    ..( 60 skipped).    ..  ***********
 68    2017-06-27 05:30    30  ***********
 69    2017-06-27 05:40    29  **********
 70    2017-06-27 05:50    30  ***********
 71    2017-06-27 06:00    30  ***********
 72    2017-06-27 06:10    29  **********
 73    2017-06-27 06:20    30  ***********
 74    2017-06-27 06:30    30  ***********
 75    2017-06-27 06:40    29  **********
 76    2017-06-27 06:50    30  ***********
 77    2017-06-27 07:00    30  ***********
 78    2017-06-27 07:10    29  **********
 79    2017-06-27 07:20    30  ***********
...    ..(  2 skipped).    ..  ***********
 82    2017-06-27 07:50    30  ***********
 83    2017-06-27 08:00    31  ************
 84    2017-06-27 08:10    30  ***********
...    ..(  4 skipped).    ..  ***********
 89    2017-06-27 09:00    30  ***********
 90    2017-06-27 09:10    31  ************
 91    2017-06-27 09:20    30  ***********
 92    2017-06-27 09:30    31  ************
...    ..( 35 skipped).    ..  ************
  0    2017-06-27 15:30    31  ************

有沒有辦法smartctl顯示整個歷史記錄而不是隱藏一些條目?我在手冊頁中沒有看到任何關於它的內容。

您可以下載原始碼或在此處查看只是smartctl通過刪除相同溫度組來優化輸出。如果您想擁有所有值,while{}請在第 2216 行刪除此循環後重新編譯(保留初始化行)。

// Find range of identical temperatures
unsigned n1 = n, n2 = n+1, i2 = (i+1) % tmh->cb_size;
while (n2 < tmh->cb_size && tmh->cb[i2] == tmh->cb[i]) {
 n2++; i2 = (i2+1) % tmh->cb_size;
}

引用自:https://unix.stackexchange.com/questions/373763