Damit ich nicht immer selbst nachschauen muss mit Crystal Disk info, hier ein Script, das einmal täglich eingeplant werden kann um den Status der Festplatten zu lesen:
<?
/* Script Info:
Dieses script prüft mittels den smart tools für windows
http://sourceforge.net/projects/smartmontools/files/smartmontools
in welchem Zustand die Festplatten sind. Bentutz wird die
smartctl.exe - es reicht, diese irgendwo hin zu kopieren, wo
Windows sie findet. zb. windows\system32
*/
/* ++++++++++ CONFIG ++++++++++++++++++++++++*/
$disks[] ="/dev/hda";
$disks[] ="/dev/hdb";
$disks[] ="/dev/hdc";
$disks[] ="/dev/hdd";
$command = "smartctl --health <disk>";
// Create variables for disk status
$c_diskvar = true; // false if not
/* ++++++++++ END CONFIG ++++++++++++++++++++++++*/
echo "Prüfe Laufwerksstatus:
";
$alarm= false;
foreach ($disks as $disk){
$e_cmd = str_replace("<disk>",$disk,$command);
unset($output);
exec($e_cmd,$output);
if(strpos(implode($output, " "),"PASSED")>0){
$status = "OK";
$status_b = true;
} else {
$status = "Problem";
$status_b = false;
$alarm= true;
}
echo "Laufwerk $disk Zustand: $status
";
}
if ($c_diskvar){
setValue(CreateVariableByName($_IPS['SELF'],"Harddisk Alarm",0,"~Alert"),$alarm);
}
function CreateVariableByName($id, $name, $type, $profile = "")
{
# type: 0=boolean, 1 = integer, 2 = float, 3 = string;
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #".$_IPS["SELF"]);
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
?>