69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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";'
 | |
| 
 | 
