1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<?php
/*
+-------------------------------------------------------------------------+
| Copyright (C) 2004 Ian Berry |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful,
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
+-------------------------------------------------------------------------+
| cacti: a php-based graphing solution |
+-------------------------------------------------------------------------+
| Most of this code has been designed, written and is maintained by |
| Ian Berry. See about.php for specific developer credit. Any questions |
| or comments regarding this code should be directed to: |
| - iberry@raxnet.net |
+-------------------------------------------------------------------------+
| - raXnet - http://www.raxnet.net/ |
+-------------------------------------------------------------------------+
*/
/* do NOT run this script through a web browser */
if (!isset($_SERVER["argv"][0])) {
die("<br><strong>This script is only meant to run at the command line.</strong>");
}
$no_http_headers = true;
include(dirname(__FILE__) . "/include/config.php");
include_once("./lib/utility.php");
/* process calling arguments */
$parms = $_SERVER["argv"];
array_shift($parms);
$debug = FALSE;
foreach($parms as $parameter) {
@list($arg, $value) = @explode("=", $parameter);
switch ($arg) {
case "-d":
$debug = TRUE;
break;
case "-h":
display_help();
exit;
case "-v":
display_help();
exit;
case "--version":
display_help();
exit;
case "--help":
display_help();
exit;
default:
print "ERROR: Invalid Parameter " . $parameter . "\n\n";
display_help();
exit;
}
}
/* obtain timeout settings */
$max_execution = ini_get("max_execution_time");
$max_memory = ini_get("memory_limit");
/* set new timeout and memory settings */
ini_set("max_execution_time", "0");
ini_set("memory_limit", "64M");
/* clear the poller cache first */
db_execute("truncate table poller_item");
/* get the data_local Id's for the poller cache */
$poller_data = db_fetch_assoc("select id from data_local");
/* initialize some variables */
$current_ds = 1;
$total_ds = sizeof($poller_data);
/* issue warnings and start message if applicable */
print "WARNING: Do not interrupt this script. Rebuilding the Poller Cache can take quite some time\n";
debug("There are '" . sizeof($poller_data) . "' data source elements to update.");
/* start rebuilding the poller cache */
if (sizeof($poller_data) > 0) {
foreach ($poller_data as $data) {
if (!$debug) print ".";
update_poller_cache($data["id"], true);
debug("Data Source Item '$current_ds' of '$total_ds' updated");
$current_ds++;
}
}
/* poller cache rebuilt, restore runtime parameters */
ini_set("max_execution_time", $max_execution);
ini_set("memory_limit", $max_memory);
/* display_help - displays the usage of the function */
function display_help () {
print "Cacti Rebuild Poller Cache Script 1.0, Copyright 2005 - The Cacti Group\n\n";
print "usage: rebuild_poller_cache.php [-d] [-h] [--help] [-v] [--version]\n\n";
print "-d - Display verbose output during execution\n";
print "-v --version - Display this help message\n";
print "-h --help - Display this help message\n";
}
function debug($message) {
global $debug;
if ($debug) {
print("DEBUG: " . $message . "\n");
}
}
?>
|