Subversion Repositories vnag

Rev

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

Rev 31 Rev 77
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
A==
23
Q==
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 2018-12-25
32
 * Revision 2023-10-13
33
 */
33
 */
34
 
34
 
35
// TODO: Anstelle "-d diskname[,diskname[,...]]" wäre es schöner ohne Komma, denn dann könnte man auch die Shell Erweiterung /dev/sd* nutzen
35
// TODO: Anstelle "-d diskname[,diskname[,...]]" wäre es schöner ohne Komma, denn dann könnte man auch die Shell Erweiterung /dev/sd* nutzen
36
 
36
 
37
declare(ticks=1);
37
declare(ticks=1);
Line 69... Line 69...
69
                $count_warning = 0;
69
                $count_warning = 0;
70
                $count_unknown = 0;
70
                $count_unknown = 0;
71
 
71
 
72
                $disks = $this->argDisks->getValue();
72
                $disks = $this->argDisks->getValue();
73
                if (empty($disks)) {
73
                if (empty($disks)) {
74
                        throw new Exception("Please specify the disks you want to monitor.");
74
                        throw new VNagException("Please specify the disks you want to monitor.");
75
                }
75
                }
76
                $disks = explode(',',$disks);
76
                $disks = explode(',',$disks);
77
 
77
 
78
                foreach ($disks as $disk) {
78
                foreach ($disks as $disk) {
79
                        $disk = preg_replace('@^/dev/@', '', $disk); // accept '/dev/' too
79
                        $disk = preg_replace('@^/dev/@', '', $disk); // accept '/dev/' too
Line 94... Line 94...
94
                                if (!file_exists($state_file)) {
94
                                if (!file_exists($state_file)) {
95
                                        $this->addVerboseMessage("$disk : Cannot fetch state (Is this a valid block device?)", VNag::VERBOSITY_SUMMARY);
95
                                        $this->addVerboseMessage("$disk : Cannot fetch state (Is this a valid block device?)", VNag::VERBOSITY_SUMMARY);
96
                                        $this->setStatus(VNag::STATUS_CRITICAL);
96
                                        $this->setStatus(VNag::STATUS_CRITICAL);
97
                                        $count_unknown++;
97
                                        $count_unknown++;
98
                                } else {
98
                                } else {
99
                                        $state = trim(file_get_contents($state_file));
99
                                        $cont = @file_get_contents($state_file);
-
 
100
                                        if ($cont === false) throw new VNagException("Cannot read $state_file");
-
 
101
                                        $state = trim($cont);
100
                                        if ($state != 'running') {
102
                                        if ($state != 'running') {
101
                                                $this->addVerboseMessage("$disk : $state", VNag::VERBOSITY_SUMMARY);
103
                                                $this->addVerboseMessage("$disk : $state", VNag::VERBOSITY_SUMMARY);
102
                                                $this->setStatus(VNag::STATUS_CRITICAL);
104
                                                $this->setStatus(VNag::STATUS_CRITICAL);
103
                                                $count_offline++;
105
                                                $count_offline++;
104
                                        } else {
106
                                        } else {