#!/usr/bin/php -q array( 'method' => 'GET', 'timeout' => 10, ), )); $data = file_get_contents($url, FALSE, $context); if($data) $feed = simplexml_load_string($data); if($feed && $feed instanceof SimpleXMLElement) { // Check the property exists and assign if( isset($feed->releases->release[0]->version) ) { $dr_current = $feed->releases->release[0]->version; // return $latest; } } verbose("Current Drupal version: $dr_current", 1); // Start checking hosts // checkHost(null, $dr_current); if( $hosts != null ) { foreach($hosts as $host) { checkHost($host, $dr_current); } } function checkHost($host, $dr_current) { // For Drupal 4.x - 6.x $cmd = "locate modules/system/system.module | xargs grep -H '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])-28); if(substr($parts[1], 0, 16) == "define('VERSION'") { $version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19); if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $hostidentifier$location\n"; } } unset($results); // For Drupal 7.x $cmd = "locate includes/bootstrap.inc | xargs grep -H 'VERSION'"; if( $host != null ) { $cmd = "ssh $host \"" . $cmd . "\""; } exec($cmd, $results); foreach($results as $instance) { $parts = explode(':', $instance); $location = substr($parts[0], 0, strlen($parts[0])-23); if(substr($parts[1], 0, 16) == "define('VERSION'") { $version = substr($parts[1], 19, strpos($parts[1], "'", 19)-19); if($version < $dr_current) echo "WARNING: Outdated Drupal $version at $host:$location\n"; } } unset($results); } ?>