mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	git-svn-id: http://www.observium.org/svn/observer/trunk@2516 61d68cd4-352d-0410-923a-c4978735b2b8
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
	include("includes/defaults.inc.php");
 | 
						|
	include("config.php");
 | 
						|
 | 
						|
	$basepath = $config['rrd_dir'].'/';
 | 
						|
 | 
						|
	$files = (sensor_getDirectoryTree($basepath));
 | 
						|
 | 
						|
	$count = count($files);
 | 
						|
 | 
						|
	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");
 | 
						|
 | 
						|
?>
 | 
						|
 |