为什么 SCT 温度历史输出中存在“跳过”的温度条目?

为什么 SCT 温度历史输出中存在“跳过”的温度条目?

为了查看 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显示整个历史记录而不是隐藏某些条目?我在手册页中没有看到任何有关它的内容。

答案1

您可以下载源码或查看这里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;
}

相关内容