define('STATE_DEPENDENT', 4); // the owner, group and filesize settings should be changed to match the correct permissions on your server. $required_files = array(APP_CONFIG_PATH . '/config.php' => array('check_owner' => true, 'owner' => 'apache', 'check_group' => true, 'group' => 'apache', 'check_permission' => true, 'permission' => 640), APP_CONFIG_PATH . '/setup.php' => array('check_owner' => true, 'owner' => 'apache', 'check_group' => true, 'group' => 'apache', 'check_permission' => true, 'permission' => 660, 'check_filesize' => true, 'filesize' => 1024)); $required_directories = array(APP_PATH . '/misc/routed_emails' => array('check_permission' => true, 'permission' => 770), APP_PATH . '/misc/routed_notes' => array('check_permission' => true, 'permission' => 770)); $opt = getopt('q'); $quiet = isset($opt['q']); $errors = 0; // load prefs $setup = Setup::load(); $prefs = $setup['monitor']; $errors += Monitor::checkDatabase(); $errors += Monitor::checkMailQueue(); $errors += Monitor::checkMailAssociation(); if ($prefs['diskcheck']['status'] == 'enabled') { $errors += Monitor::checkDiskspace($prefs['diskcheck']['partition']); } if ($prefs['paths']['status'] == 'enabled') { $errors += Monitor::checkRequiredFiles($required_files); $errors += Monitor::checkRequiredDirs($required_directories); } if ($prefs['ircbot']['status'] == 'enabled') { $errors += Monitor::checkIRCBot(); } if ($errors) { // propagate status code to shell exit(STATE_CRITICAL); } if (!$quiet) { echo ev_gettext('OK: No errors found'), "\n"; } exit(STATE_OK);