Subversion Repositories vnag

Rev

Rev 53 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 53 Rev 77
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
w==
23
w==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 * VNag - Nagios Framework for PHP
28
 * VNag - Nagios Framework for PHP
29
 * Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com>
29
 * Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com>
30
 * Licensed under the terms of the Apache 2.0 license
30
 * Licensed under the terms of the Apache 2.0 license
31
 *
31
 *
32
 * Revision 2022-05-11
32
 * Revision 2023-10-13
33
 */
33
 */
34
 
34
 
35
declare(ticks=1);
35
declare(ticks=1);
36
 
36
 
37
class SmartCheck extends VNag {
37
class SmartCheck extends VNag {
Line 89... Line 89...
89
                        #$status = VNag::STATUS_UNKNOWN;
89
                        #$status = VNag::STATUS_UNKNOWN;
90
                } else if ($code == 0) {
90
                } else if ($code == 0) {
91
                        $status = VNag::STATUS_OK;
91
                        $status = VNag::STATUS_OK;
92
                } else {
92
                } else {
93
                        if ($code & 1) {
93
                        if ($code & 1) {
94
                                throw new Exception("smartctl reports 'command line did not parse' (code $code).");
94
                                throw new VNagException("smartctl reports 'command line did not parse' (code $code).");
95
                        }
95
                        }
96
                        if ($code & 2) {
96
                        if ($code & 2) {
97
                                $msg[] = "Device open failed. It is either completely defective, or in low-power mode.";
97
                                $msg[] = "Device open failed. It is either completely defective, or in low-power mode.";
98
                                $status = max($status, VNag::STATUS_CRITICAL);
98
                                $status = max($status, VNag::STATUS_CRITICAL);
99
                        }
99
                        }
Line 144... Line 144...
144
                $devices = array();
144
                $devices = array();
145
                $devices = array_merge($devices, glob('/dev/sd?'));
145
                $devices = array_merge($devices, glob('/dev/sd?'));
146
                $devices = array_merge($devices, glob('/dev/hd?'));
146
                $devices = array_merge($devices, glob('/dev/hd?'));
147
 
147
 
148
                if (count($devices) == 0) {
148
                if (count($devices) == 0) {
149
                        throw new Exception("No SDx or HDx drives found");
149
                        throw new VNagException("No SDx or HDx drives found");
150
                }
150
                }
151
 
151
 
152
                if (strpos($this->argType->getValue(),'cciss') !== false) {
152
                if (strpos($this->argType->getValue(),'cciss') !== false) {
153
                        $devices = array($devices[0]); // we just need a "fake" drive; the drive number is given as parameter to cciss
153
                        $devices = array($devices[0]); // we just need a "fake" drive; the drive number is given as parameter to cciss
154
                }
154
                }