#!/usr/bin/perl use DBI; # This should be the URL for the base of your cacti install (no trailing slash) $cacti_base = "http://www.mynet.net/cacti"; # How we should access your Cacti database.... $db_name = "cacti"; $db_username = "cactiuser"; $db_password = "somepassword"; $db_host = "localhost"; # # You shouldn't need to change anything below here # $cacti_graph = "$cacti_base/graph_image.php?local_graph_id=%d&rra_id=0&graph_nolegend=true&graph_height=100&graph_width=300"; $cacti_graphpage = "$cacti_base/graph.php?rra_id=all&local_graph_id=%d"; $DSN = "DBI:mysql:database=$db_name:host=$db_host"; $dbh = DBI->connect( $DSN, $db_username, $db_password ); $inputfile = $ARGV[0]; $outputfile = $inputfile . ".new"; open( INPUT, $inputfile ) || die($!); open( OUTPUT, ">$outputfile" ); while (
) { if (m/^\s*LINK\s+(\S+)/i) { if ( $overlibcount == 0 && $target ne "" ) { find_graph_urls($target); } $overlibcount = 0; $target = ""; } if (m/^\s*TARGET\s+(\S+\.rrd)/i) { $target = $1; } if (m/^\s*OVERLIBGRAPH\s+(\S+)/i) { $overlibcount++; } print OUTPUT $_; } # for the last LINK if ( $overlibcount == 0 && $target ne "" ) { find_graph_urls($target); } close(OUTPUT); close(INPUT); print "\nNew config file is saved in $outputfile\n"; sub find_graph_urls { my ($target) = shift; # $dbh is global my ( @bits, $SQL, $sth, $data ); my ( $data_template_id, $local_data_id, $count, $output ); my ( $local_graph_id, $title, $graph_url, $graphpage_url ); # we've reached the next link entry, and there's work to be done @bits = split( /\//, $target ); $target = $bits[-1]; print "Find a graph for $target\n"; $SQL = "select local_data_id from data_template_data where data_source_path like '%".$target."' LIMIT 1"; $sth = $dbh->prepare($SQL); $sth->execute(); $data = $sth->fetchrow_hashref(); $local_data_id = $$data{local_data_id}; $sth->finish(); $SQL = "SELECT id FROM data_template_rrd WHERE local_data_id=$local_data_id LIMIT 1"; $sth = $dbh->prepare($SQL); $sth->execute(); $data = $sth->fetchrow_hashref(); $data_template_rrd_id = $$data{id}; $sth->finish(); $SQL = "SELECT DISTINCT graph_templates_item.local_graph_id,title_cache FROM graph_templates_item,graph_templates_graph WHERE task_item_id=$data_template_rrd_id and graph_templates_graph.local_graph_id = graph_templates_item.local_graph_id"; $sth = $dbh->prepare($SQL); $sth->execute(); $count = 0; $output = ""; while ( $data = $sth->fetchrow_hashref() ) { $local_graph_id = $$data{local_graph_id}; $title = $$data{title_cache}; $graph_url = sprintf( $cacti_graph, $local_graph_id ); $graphpage_url = sprintf( $cacti_graphpage, $local_graph_id ); $output .= "\t# POSSIBLE OVERLIBGRAPH ($title) \n"; $output .= "\t# OVERLIBGRAPH $graph_url\n"; $output .= "\t# INFOURL $graphpage_url\n"; $count++; } $sth->finish(); if ( $count == 1 ) { print " Single option. Adding it.\n"; print OUTPUT "\t#Automatically made. Graph is ID $local_graph_id: $title\n"; print OUTPUT "\tOVERLIBGRAPH $graph_url\n"; print OUTPUT "\tINFOURL $graphpage_url\n"; } else { print " Multiple options. Adding them as comments.\n"; print OUTPUT $output; } print OUTPUT "\n\n"; }
WebSVN - weathermap - Blame - Rev 19 - /random-bits/auto-overlib.pl
Català-Valencià - Catalan
Česky - Cesky
Dansk - Dansk
Dutch - Dutch
English - English
Finnish - Finnish
Français - Francais
Deutsch - German
עברית - Hebrew
Magyar - Hungarian
Bahasa Indonesia - Indonesian
Italiano - Italian
日本語 - Japanese
한국어 - Korean
Norsk - Norwegian
Polski - Polish
Português - Portuguese
Português - Brazilian Portuguese
Русский - Russian
中文 - Simplified Chinese
Slovenčina - Slovak
Slovenčina - Slovenian
Español - Spanish
Svenska - Swedish
中文 - Traditional Chinese
Türkçe - Turkish
Oëzbekcha - Uzbek
weathermap
Subversion Repositories:
banderdyn
centos.prosek.czf
crusader
czf4bfu
czf4bfu.prosek.czf
czfcentos
czfgmap
discover
fedora.prosek.czf
freenet-router
ftth
getonlineclouds
hotsanic
internet.prosek.czf
is
mapstats
meteolinger
netmap
qos
sedlo
sedlo.prosek.czf
switches
vbtobb
vlubnt
weathermap
weatherstats
websvn
wifidashboard
wifimon
www.prosek.czf
xenstats
[
/
] [
random-bits/
] [
auto-overlib.pl
] - Blame information for rev
19
Line No.
Rev
Author
Line
Powered by
WebSVN
2.2.1