69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/bin/sh | ||
|  | # | ||
|  | # Wildcard-script to monitor network interfaces. To monitor an | ||
|  | # interface, link vlan_<interface> to this file. E.g. | ||
|  | # | ||
|  | #    ln /usr/share/munin/node/plugins-contrib/vlan_ /etc/munin/node.d/vlan_eth0_1 | ||
|  | # | ||
|  | # ...will monitor eth0.1 | ||
|  | # | ||
|  | # Parameters: | ||
|  | # | ||
|  | # 	config | ||
|  | # 	autoconf | ||
|  | # 	suggest | ||
|  | # | ||
|  | #%# family=manual | ||
|  | #%# capabilities=autoconf suggest | ||
|  | 
 | ||
|  | # URLBASE= | ||
|  | 
 | ||
|  | CACHE=/tmp/river_level_.dat | ||
|  | checkdata () { | ||
|  | 	if test `find "$CACHE" -mtime +1` | ||
|  | 	then | ||
|  |     	curl -o $CACHE -Ss $URLBASE || exit 1 | ||
|  | 	fi | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | getstationname () { | ||
|  | 	checkdata | ||
|  | 	NAME=$( perl -MJSON::PP -e ' | ||
|  | 	open $fh, "/tmp/river_level_.dat" or die $!; | ||
|  | 	$data_arr = decode_json(<$fh>) or die $!; | ||
|  | 	my %data; | ||
|  | 	foreach (@{$data_arr->{data}}) { | ||
|  | 		$data{$_->{id}} = $_; | ||
|  | 	} | ||
|  | 	foreach (@ARGV) { print $data{$_}->{river}, " at ", $data{$_}->{station}, "\n"; } | ||
|  | 	' $* ) | ||
|  | } | ||
|  | 
 | ||
|  | STATION=$(basename $0 | sed 's/^river_level_//g' | cut -d_ -f 3) | ||
|  | 
 | ||
|  | if [ "$1" = "autoconf" ]; then | ||
|  | 	echo "no" | ||
|  |     exit 0 | ||
|  | fi | ||
|  | 
 | ||
|  | if [ "$1" = "suggest" ]; then | ||
|  |     exit 0 | ||
|  | fi | ||
|  | 
 | ||
|  | if [ "$1" = "config" ]; then | ||
|  | 	getstationname $STATION | ||
|  | 	echo "graph_title River Level for $NAME [$STATION]" | ||
|  | 	echo 'graph_args --base 1000 -l 0 ' | ||
|  | 	echo 'graph_vlabel station level (metres)' | ||
|  | 	echo 'graph_category rivers' | ||
|  | 	echo 'graph_info This graph shows river levels' | ||
|  | 	echo "level.label $NAME" | ||
|  | 	echo 'level.info Current river level (metres)' | ||
|  | 	exit 0 | ||
|  | fi | ||
|  | 
 | ||
|  | curl -sS $URLBASE/$STATION | | ||
|  | 	perl -MJSON::PP -e '$d=decode_json(<>) or die; print "level.value $d->{data}->{current}->{level}\n";' | ||
|  | 
 |