Open-AudIT https://www.open-audit.org/phpBB3/ |
|
Audit Harddrive SMART. https://www.open-audit.org/phpBB3/viewtopic.php?f=5&t=2638 |
Page 1 of 1 |
Author: | nelio.fertado [ Sat Feb 16, 2008 2:42 am ] |
Post subject: | Audit Harddrive SMART. |
To add SMART Harddrive audit you need to change some lines in the audit.vbs, system_viewdef_hardware.php, admin_pc_add_2.php and if you want on the sql script open_audit.sql. The Hard Drive SMART attribute is called hard_drive_status (refer to hdd smart status) Audit.vbs Changes [code] ''''''''''''''''''''''''''' ' H.Drive Information ' ''''''''''''''''''''''''''' comment = "Hard Disk Info" if verbose = "y" then wscript.echo comment end if On Error Resume Next Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive",,48) For Each objItem in colItems form_input = "harddrive^^^" _ & clean(objItem.Caption) & "^^^" & clean(objItem.Index) & "^^^" & clean(objItem.InterfaceType) & "^^^" _ & clean(objItem.Manufacturer) & "^^^" & clean(objItem.Model) & "^^^" & clean(objItem.Partitions) & "^^^" _ & clean(objItem.SCSIBus) & "^^^" & clean(objItem.SCSILogicalUnit) & "^^^" & clean(objItem.SCSIPort) & "^^^" _ & clean(int(objItem.Size /1024 /1024)) & "^^^" & clean(objItem.Status) & "^^^" & clean(objItem.PNPDeviceID) entry form_input,comment,objTextFile,oAdd,oComment form_input = "" if online = "p" then oIE.document.WriteLn "<tr bgcolor=""#F1F1F1""><td>Hard Drive Type: </td><td>" & clean(objItem.InterfaceType) & "</td></tr>" oIE.document.WriteLn "<tr><td>Hard Drive Size: </td><td>" & clean(int(objItem.Size /1024 /1024)) & " mb</td></tr>" oIE.document.WriteLn "<tr bgcolor=""#F1F1F1""><td>Hard Drive Model: </td><td>" & clean(objItem.Model) & "</td></tr>" oIE.document.WriteLn "<tr><td>Hard Drive Partitions: </td><td>" & clean(objItem.Partitions) & "</td></tr>" oIE.document.WriteLn "<tr bgcolor=""#F1F1F1""><td>Hard Drive Status: </td><td>" & clean(objItem.Status) & "</td></tr>" end if Next [/code] system_viewdef_hardware.php Changes [code] "hard_drive"=>array( "headline"=>__("Fixed Disks"), "sql"=>"SELECT hard_drive_index, hard_drive_manufacturer, hard_drive_interface_type, hard_drive_model, hard_drive_partitions, hard_drive_size, hard_drive_status, hard_drive_scsi_bus, hard_drive_scsi_logical_unit, hard_drive_scsi_port FROM hard_drive, system WHERE hard_drive_uuid=system_uuid AND hard_drive_uuid = '" . $_GET["pc"] . "' AND hard_drive_timestamp = '".$GLOBAL["system_timestamp"]."' ORDER BY hard_drive_index", "image"=>"images/harddisk_l.png", "fields"=>array("10"=>array("name"=>"hard_drive_index", "head"=>__("Index"),), "20"=>array("name"=>"hard_drive_manufacturer", "head"=>__("Manufacturer"),), "30"=>array("name"=>"hard_drive_interface_type", "head"=>__("Type"),), "40"=>array("name"=>"hard_drive_model", "head"=>__("Model"),), "50"=>array("name"=>"hard_drive_partitions", "head"=>__("Partitions"),), "60"=>array("name"=>"hard_drive_size", "head"=>__("Size"),), "70"=>array("name"=>"hard_drive_status", "head"=>__("Status"),), "80"=>array("name"=>"hard_drive_scsi_bus", "head"=>__("SCSI Bus"),), "90"=>array("name"=>"hard_drive_scsi_logical_unit", "head"=>__("SCSI Logical Unit"),), "100"=>array("name"=>"hard_drive_scsi_port", "head"=>__("SCSI Port"),), ), ), [/code] admin_pc_add_2.php Changes [code] function insert_harddrive ($split){ global $timestamp, $uuid, $verbose, $hard_drive_timestamp; if ($verbose == "y"){echo "<h2>Hard Drive</h2><br />";} $extended = explode('^^^',$split); $hard_drive_caption = trim($extended[1]); $hard_drive_index = trim($extended[2]); $hard_drive_interface_type = trim($extended[3]); $hard_drive_manufacturer = trim($extended[4]); $hard_drive_model = trim($extended[5]); $hard_drive_partitions = trim($extended[6]); $hard_drive_scsi_bus = trim($extended[7]); $hard_drive_scsi_logical_unit = trim($extended[8]); $hard_drive_scsi_port = trim($extended[9]); $hard_drive_size = trim($extended[10]); $hard_drive_status = trim($extended[11]); $hard_drive_pnpid = trim($extended[12]); if (is_null($hard_drive_timestamp)){ $sql = "SELECT MAX(hard_drive_timestamp) FROM hard_drive WHERE hard_drive_uuid = '$uuid'"; if ($verbose == "y"){echo $sql . "<br />\n\n";} $result = mysql_query($sql) or die ('Insert Failed: ' . mysql_error() . '<br />' . $sql); $myrow = mysql_fetch_array($result); if ($myrow["MAX(hard_drive_timestamp)"]) {$hard_drive_timestamp = $myrow["MAX(hard_drive_timestamp)"];} else {$hard_drive_timestamp = "";} } else {} $sql = "SELECT count(hard_drive_uuid) AS count FROM hard_drive WHERE hard_drive_uuid = '$uuid' AND hard_drive_caption = '$hard_drive_caption' AND "; $sql .= "hard_drive_index = '$hard_drive_index' AND hard_drive_interface_type = '$hard_drive_interface_type' AND "; $sql .= "hard_drive_manufacturer = '$hard_drive_manufacturer' AND hard_drive_model = '$hard_drive_model' AND "; $sql .= "hard_drive_partitions = '$hard_drive_partitions' AND hard_drive_scsi_bus = '$hard_drive_scsi_bus' AND "; $sql .= "hard_drive_scsi_logical_unit = '$hard_drive_scsi_logical_unit' AND hard_drive_scsi_port = '$hard_drive_scsi_port' AND "; $sql .= "hard_drive_size = '$hard_drive_size' AND hard_drive_status = '$hard_drive_status' AND (hard_drive_timestamp = '$hard_drive_timestamp' OR hard_drive_timestamp = '$timestamp')"; if ($verbose == "y"){echo $sql . "<br />\n\n";} $result = mysql_query($sql) or die ('Insert Failed: ' . mysql_error() . '<br />' . $sql); $myrow = mysql_fetch_array($result); if ($verbose == "y"){echo "Count: " . $myrow['count'] . "<br />\n\n";} if ($myrow['count'] == "0"){ // Insert into database $sql = "INSERT INTO hard_drive (hard_drive_uuid, hard_drive_caption, hard_drive_index, "; $sql .= "hard_drive_interface_type, hard_drive_manufacturer, hard_drive_model, "; $sql .= "hard_drive_partitions, hard_drive_scsi_bus, hard_drive_scsi_logical_unit, "; $sql .= "hard_drive_scsi_port, hard_drive_size, hard_drive_status, hard_drive_timestamp, "; $sql .= "hard_drive_first_timestamp, hard_drive_pnpid) VALUES ("; $sql .= "'$uuid', '$hard_drive_caption', '$hard_drive_index', "; $sql .= "'$hard_drive_interface_type', '$hard_drive_manufacturer', '$hard_drive_model', "; $sql .= "'$hard_drive_partitions', '$hard_drive_scsi_bus', '$hard_drive_scsi_logical_unit', "; $sql .= "'$hard_drive_scsi_port', '$hard_drive_size', '$hard_drive_status', '$timestamp', '$timestamp', '$hard_drive_pnpid')"; if ($verbose == "y"){echo $sql . "<br />\n\n";} $result = mysql_query($sql) or die ('Insert Failed: ' . mysql_error() . '<br />' . $sql); } else { // Already present in database - update timestamp $sql = "UPDATE hard_drive SET hard_drive_timestamp = '$timestamp', hard_drive_pnpid = '$hard_drive_pnpid' WHERE hard_drive_index = '$hard_drive_index' AND "; $sql .= "hard_drive_uuid = '$uuid' AND hard_drive_timestamp = '$hard_drive_timestamp'"; if ($verbose == "y"){echo $sql . "<br />\n\n";} $result = mysql_query($sql) or die ('Insert Failed: ' . mysql_error() . '<br />' . $sql); } } [/code] Changes on open_audit.sql [code] DROP TABLE IF EXISTS `hard_drive`; CREATE TABLE `hard_drive` ( `hard_drive_id` int(10) unsigned NOT NULL auto_increment, `hard_drive_uuid` varchar(100) NOT NULL default '', `hard_drive_caption` varchar(100) NOT NULL default '', `hard_drive_index` int(11) unsigned NOT NULL default '0', `hard_drive_interface_type` varchar(10) NOT NULL default '', `hard_drive_manufacturer` varchar(100) NOT NULL default '', `hard_drive_model` varchar(100) NOT NULL default '', `hard_drive_partitions` int(11) unsigned NOT NULL default '0', `hard_drive_scsi_bus` varchar(10) NOT NULL default '', `hard_drive_scsi_logical_unit` varchar(100) NOT NULL default '', `hard_drive_scsi_port` varchar(10) NOT NULL default '', `hard_drive_size` int(11) unsigned NOT NULL default '0', `hard_drive_status` varchar(100) NOT NULL default '', `hard_drive_pnpid` varchar(200) NOT NULL default '', `hard_drive_timestamp` bigint(20) unsigned NOT NULL default '0', `hard_drive_first_timestamp` bigint(20) unsigned NOT NULL default '0', PRIMARY KEY (`hard_drive_id`), KEY `id` (`hard_drive_uuid`), KEY `id2` (`hard_drive_timestamp`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; [/code] Can you add this to the svn Version. |
Author: | ef [ Sat Feb 16, 2008 7:03 am ] |
Post subject: | Re: Audit Harddrive SMART. |
This feature is present since SVN rev. 959 Don't rely on the reported status in case of disk arrays, I'm not sure if this value could be or not accurate in this case. |
Page 1 of 1 | All times are UTC + 10 hours |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |