Fix SAS Selftest

Errors

static const char * self_test_result[] = {
        "Completed                ",
        "Aborted (by user command)",
        "Aborted (device reset ?) ",
        "Unknown error, incomplete",
        "Completed, segment failed",
        "Failed in first segment  ",
        "Failed in second segment ",
        "Failed in segment",            /* special handling for result 7 */
        "Reserved(8)              ",
        "Reserved(9)              ",
        "Reserved(10)             ",
        "Reserved(11)             ",
        "Reserved(12)             ",
        "Reserved(13)             ",
        "Reserved(14)             ",
        "Self test in progress ..."
}
This commit is contained in:
SimonFair
2022-08-25 19:42:48 +01:00
parent ee544d259d
commit 948cf2f54b
+23 -6
View File
@@ -217,17 +217,30 @@ case "stop":
exec("smartctl -X $type ".escapeshellarg("/dev/$port"));
break;
case "update":
$progress = exec("smartctl -n standby -c $type ".escapeshellarg("/dev/$port")."|grep -Pom1 '\d+%'");
if ($progress) {
echo "<span class='big'><i class='fa fa-spinner fa-pulse'></i> "._('self-test in progress').", ".(100-substr($progress,0,-1))."% "._('complete')."</span>";
break;
if ($disk["transport"] == "scsi") {
$progress = exec("smartctl -n standby -l selftest $type ".escapeshellarg("/dev/$port")."|grep -Pom1 '\d+%'");
if ($progress) {
echo "<span class='big'><i class='fa fa-spinner fa-pulse'></i> "._('self-test in progress').", ".(100-substr($progress,0,-1))."% "._('complete')."</span>";
break;
}
} else {
$progress = exec("smartctl -n standby -c $type ".escapeshellarg("/dev/$port")."|grep -Pom1 '\d+%'");
if ($progress) {
echo "<span class='big'><i class='fa fa-spinner fa-pulse'></i> "._('self-test in progress').", ".(100-substr($progress,0,-1))."% "._('complete')."</span>";
break;
}
}
$result = trim(exec("smartctl -n standby -l selftest $type ".escapeshellarg("/dev/$port")."|grep -m1 '^# 1'|cut -c26-55"));
if ($disk["transport"] == "scsi") $result = trim(exec("smartctl -n standby -l selftest $type ".escapeshellarg("/dev/$port")."|grep -m1 '^# 1'|cut -c24-50"));
else $result = trim(exec("smartctl -n standby -l selftest $type ".escapeshellarg("/dev/$port")."|grep -m1 '^# 1'|cut -c26-55"));
if (!$result) {
echo "<span class='big'>"._('No self-tests logged on this disk')."</span>";
break;
}
if (strpos($result, "Completed without error")!==false) {
if (strpos($result, "Completed, segment failed")!==false) {
echo "<span class='big red-text'>"._($result)."</span>";
break;
}
if (strpos($result, "Completed without error")!==false || strpos($result, "Completed")!==false ) {
echo "<span class='big green-text'>"._($result)."</span>";
break;
}
@@ -235,6 +248,10 @@ case "update":
echo "<span class='big orange-text'>"._($result)."</span>";
break;
}
if (strpos($result, "Failed")!==false) {
echo "<span class='big red-text'>"._($result)."</span>";
break;
}
echo "<span class='big red-text'>"._('Errors occurred - Check SMART report')."</span>";
break;
case "selftest":