| | |
| | | */ |
| | | |
| | | class cronjob_monitor_clamav_log extends cronjob { |
| | | |
| | | // job schedule |
| | | protected $_schedule = '*/5 * * * *'; |
| | | protected $_run_at_new = true; |
| | | |
| | | private $_tools = null; |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onPrepare() { |
| | | global $app; |
| | | |
| | | parent::onPrepare(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onBeforeRun() { |
| | | global $app; |
| | | |
| | | return parent::onBeforeRun(); |
| | | } |
| | | |
| | | public function onRunJob() { |
| | | global $app, $conf; |
| | | |
| | | /* used for all monitor cronjobs */ |
| | | $app->load('monitor_tools'); |
| | | $this->_tools = new monitor_tools(); |
| | | /* end global section for monitor cronjobs */ |
| | | |
| | | |
| | | // job schedule |
| | | protected $_schedule = '*/5 * * * *'; |
| | | protected $_run_at_new = true; |
| | | |
| | | private $_tools = null; |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onPrepare() { |
| | | global $app; |
| | | |
| | | parent::onPrepare(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onBeforeRun() { |
| | | global $app; |
| | | |
| | | return parent::onBeforeRun(); |
| | | } |
| | | |
| | | public function onRunJob() { |
| | | global $app, $conf; |
| | | |
| | | /* used for all monitor cronjobs */ |
| | | $app->load('monitor_tools'); |
| | | $this->_tools = new monitor_tools(); |
| | | /* end global section for monitor cronjobs */ |
| | | |
| | | /* the id of the server as int */ |
| | | $server_id = intval($conf['server_id']); |
| | | |
| | | /** The type of the data */ |
| | | |
| | | |
| | | $type = 'log_clamav'; |
| | | |
| | | /* Get the data of the log */ |
| | |
| | | * Insert the data into the database |
| | | */ |
| | | $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . |
| | | 'VALUES (' . |
| | | $res['server_id'] . ', ' . |
| | | "'" . $app->dbmaster->quote($res['type']) . "', " . |
| | | 'UNIX_TIMESTAMP(), ' . |
| | | "'" . $app->dbmaster->quote(serialize($res['data'])) . "', " . |
| | | "'" . $res['state'] . "'" . |
| | | ')'; |
| | | $app->dbmaster->query($sql); |
| | | 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; |
| | | $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); |
| | | |
| | | /* The new data is written, now we can delete the old one */ |
| | | $this->_tools->delOldRecords($res['type'], $res['server_id']); |
| | |
| | | * Now we have the last log in the array. |
| | | * Check if the outdated-string is found... |
| | | */ |
| | | $clamav_outdated_warning = false; |
| | | $clamav_bytecode_updated = false; |
| | | foreach ($lastLog as $line) { |
| | | if (strpos(strtolower($line), 'outdated') !== false) { |
| | | /* |
| | | * Outdatet is only info, because if we set this to warning, the server is |
| | | * as long in state warning, as there is a new version of ClamAv which takes |
| | | * sometimes weeks! |
| | | */ |
| | | $state = $this->_tools->_setState($state, 'info'); |
| | | if (stristr($line,"Can't download daily.cvd from")) { |
| | | $clamav_outdated_warning = true; |
| | | } |
| | | if(stristr($line,'main.cld is up to date')) { |
| | | $clamav_bytecode_updated = true; |
| | | } |
| | | } |
| | | |
| | | //* Warn when clamav is outdated and main.cld update failed. |
| | | if($clamav_outdated_warning == true && $clamav_bytecode_updated == false) { |
| | | $state = $this->_tools->_setState($state, 'info'); |
| | | } |
| | | |
| | | $res = array(); |
| | |
| | | * Insert the data into the database |
| | | */ |
| | | $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . |
| | | 'VALUES (' . |
| | | $res['server_id'] . ', ' . |
| | | "'" . $app->dbmaster->quote($res['type']) . "', " . |
| | | 'UNIX_TIMESTAMP(), ' . |
| | | "'" . $app->dbmaster->quote(serialize($res['data'])) . "', " . |
| | | "'" . $res['state'] . "'" . |
| | | ')'; |
| | | $app->dbmaster->query($sql); |
| | | 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; |
| | | $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); |
| | | |
| | | /* The new data is written, now we can delete the old one */ |
| | | $this->_tools->delOldRecords($res['type'], $res['server_id']); |
| | | |
| | | |
| | | parent::onRunJob(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onAfterRun() { |
| | | global $app; |
| | | |
| | | parent::onAfterRun(); |
| | | } |
| | | |
| | | parent::onRunJob(); |
| | | } |
| | | |
| | | /* this function is optional if it contains no custom code */ |
| | | public function onAfterRun() { |
| | | global $app; |
| | | |
| | | parent::onAfterRun(); |
| | | } |
| | | |
| | | } |
| | | |