From 556fe14b862fcb7c71b03cb414ab0dd01026938c Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 5 Oct 2013 15:05:23 +0000 Subject: [PATCH] modified code so that local machine is checked. CHECK_HOSTS can now be empty (only local check) --- neighborhoodwatch.conf-sample | 1 + run.d/drupal | 7 +++---- run.d/wordpress | 23 +++++++++++++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/neighborhoodwatch.conf-sample b/neighborhoodwatch.conf-sample index a92fa5e..280e922 100644 --- a/neighborhoodwatch.conf-sample +++ b/neighborhoodwatch.conf-sample @@ -4,6 +4,7 @@ # # Hosts that need to be checked (these need to be an ssh login with keys, not passwords, hosts space separated) +# If the list is empty, the local machine will be checked. # export CHK_HOSTS="host1 host2 host3" diff --git a/run.d/drupal b/run.d/drupal index 98c72ed..c04d055 100755 --- a/run.d/drupal +++ b/run.d/drupal @@ -32,9 +32,8 @@ if($feed && $feed instanceof SimpleXMLElement) { // Start checking hosts // -if( $hosts == null ) { - checkHost(null, $dr_current); -} else { +checkHost(null, $dr_current); +if( $hosts != null ) { foreach($hosts as $host) { checkHost($host, $dr_current); } @@ -43,7 +42,7 @@ if( $hosts == null ) { function checkHost($host, $dr_current) { // For Drupal 4.x - 6.x $cmd = "locate modules/system/system.module | xargs grep -H 'VERSION'"; - $hostidentifier = ""; + $hostidentifier = "localhost:"; if( $host != null ) { $cmd = "ssh $host \"" . $cmd . "\""; $hostidentifier = $host . ":"; diff --git a/run.d/wordpress b/run.d/wordpress index 6e55827..aedacb4 100755 --- a/run.d/wordpress +++ b/run.d/wordpress @@ -14,14 +14,29 @@ if( getenv('CHK_HOSTS') == null ) { $wp_api = unserialize(file_get_contents("http://api.wordpress.org/core/version-check/1.6/")); $wp_current = $wp_api['offers'][0]['current']; -foreach($hosts as $host) { - $cmd = "ssh $host \"locate wp-includes/version.php | xargs grep -H 'wp_version ='\""; +checkHost(null, $wp_current); +if( $hosts != null ) { + foreach($hosts as $host) { + checkHost($host, $wp_current); + } +} + +function checkHost($host, $wp_current) { + $cmd = "locate wp-includes/version.php | xargs grep -H 'wp_version ='"; + $hostidentifier = "localhost:"; + if( $host != null ) { + $cmd = "ssh $host \"" . $cmd . "\""; + $hostidentifier = $host . ":"; + } exec($cmd, $results); foreach($results as $instance) { $parts = explode(':', $instance); $location = substr($parts[0], 0, strlen($parts[0])-23); - $version = substr($parts[1], 15, 5); - if($version < $wp_current) echo "WARNING: Outdated Wordpress $version at $host:$location\n"; + preg_match("/wp_version = '([0-9]+\.[0-9]+(\.[0-9]+)?)';/", $parts[1], $matches); + $version = $matches[1]; + if($version < $wp_current) { + echo "WARNING: Outdated Wordpress $version at $hostidentifier$location\n"; + } } unset($results);