mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	commit sensor fix script that should have gone along with the previous ones
git-svn-id: http://www.observium.org/svn/observer/trunk@1760 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
		
							
								
								
									
										84
									
								
								fix-sensor-rrd.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								fix-sensor-rrd.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | |||||||
|  | <?php | ||||||
|  | 	include("includes/defaults.inc.php"); | ||||||
|  | 	include("config.php"); | ||||||
|  |  | ||||||
|  | 	$basepath = $config['rrd_dir'].'/'; | ||||||
|  |  | ||||||
|  | 	$files = (sensor_getDirectoryTree($basepath)); | ||||||
|  |  | ||||||
|  | 	$count = count($files); | ||||||
|  |  | ||||||
|  |         if($config['rrdcached']) | ||||||
|  |         { | ||||||
|  |           $rrdcached = " --daemon " . $config['rrdcached']; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  | 	echo($count . " Files \n"); | ||||||
|  | 	$start = date("U"); | ||||||
|  |         $i = 0; | ||||||
|  | 	foreach($files as $file){ | ||||||
|  | 		sensor_fixRdd($file); | ||||||
|  | 		$i++; | ||||||
|  | 		if(date("U") - $start > 1) | ||||||
|  | 			echo(round(($i / $count) * 100, 2) . "%  \r"); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	function sensor_getDirectoryTree( $outerDir, &$files = array()){  | ||||||
|  |  | ||||||
|  | 		$dirs = array_diff( scandir( $outerDir ), Array( ".", ".." ) );  | ||||||
|  |     		foreach( $dirs as $d ){  | ||||||
|  |         		if( is_dir($outerDir."/".$d)  ){  | ||||||
|  | 				sensor_getDirectoryTree($outerDir.'/'. $d, $files); | ||||||
|  |         		} else {  | ||||||
|  | 				if ( (preg_match('/^fan-.*.rrd$/', $d)) || | ||||||
|  | 				     (preg_match('/^current-.*.rrd$/', $d)) || | ||||||
|  | 				     (preg_match('/^freq-.*.rrd$/', $d)) || | ||||||
|  | 				     (preg_match('/^humidity-.*.rrd$/', $d)) || | ||||||
|  | 				     (preg_match('/^volt-.*.rrd$/', $d)) || | ||||||
|  | 				     (preg_match('/^temp-.*.rrd$/', $d)) ) | ||||||
|  | 					array_push($files, preg_replace('/\/+/', '/',  $outerDir.'/'. $d)); | ||||||
|  |  | ||||||
|  | 			} | ||||||
|  |     		}  | ||||||
|  |   		return $files;  | ||||||
|  | 	}  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	function sensor_fixRdd($file){ | ||||||
|  | 		global $config; | ||||||
|  |                 global $rrdcached; | ||||||
|  | 		$fileC = shell_exec( "{$config['rrdtool']} dump $file $rrdcached"); | ||||||
|  | 		if(preg_match('/<name> fan/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r fan:sensor"); | ||||||
|  | 		  rename($file,str_replace('/fan-','/fanspeed-',$file)); | ||||||
|  | 		} | ||||||
|  | 		elseif(preg_match('/<name> volt/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r volt:sensor"); | ||||||
|  | 		  rename($file,str_replace('/volt-','/voltage-',$file)); | ||||||
|  | 		} | ||||||
|  | 		elseif(preg_match('/<name> current/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r current:sensor"); | ||||||
|  | 		} | ||||||
|  | 		elseif(preg_match('/<name> freq/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r freq:sensor"); | ||||||
|  | 		  rename($file,str_replace('/freq-','/frequency-',$file)); | ||||||
|  | 		} | ||||||
|  | 		elseif(preg_match('/<name> humidity/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r humidity:sensor"); | ||||||
|  | 		} | ||||||
|  | 		elseif(preg_match('/<name> temp/', $fileC)) | ||||||
|  | 		{ | ||||||
|  | 		  shell_exec("{$config['rrdtool']} tune $file $rrdcached -r temp:sensor"); | ||||||
|  | 		  rename($file,str_replace('/temp-','/temperature-',$file)); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	echo("\n"); | ||||||
|  |  | ||||||
|  | ?> | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user