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
|
#!/usr/bin/env php
<?php
// This is the base directory of the SimpleSAMLphp installation
$baseDir = dirname(dirname(dirname(dirname(__FILE__))));
// Add library autoloader.
require_once($baseDir . '/lib/_autoload.php');
// Initialize the configuration.
$configdir = \SimpleSAML\Utils\Config::getConfigDir();
\SimpleSAML\Configuration::setConfigDir($configdir);
\SimpleSAML\Utils\Time::initTimezone();
$progName = array_shift($argv);
$debug = false;
$dryrun = false;
foreach ($argv as $a) {
if (strlen($a) === 0) {
continue;
}
if (strpos($a, '=') !== false) {
$p = strpos($a, '=');
$v = substr($a, $p + 1);
$a = substr($a, 0, $p);
} else {
$v = null;
}
// Map short options to long options.
$shortOptMap = ['-d' => '--debug'];
if (array_key_exists($a, $shortOptMap)) {
$a = $shortOptMap[$a];
}
switch ($a) {
case '--help':
printHelp();
exit(0);
case '--debug':
$debug = true;
break;
case '--dry-run':
$dryrun = true;
break;
default:
echo 'Unknown option: ' . $a . "\n";
echo 'Please run `' . $progName . ' --help` for usage information.' . "\n";
exit(1);
}
}
$aggregator = new \SimpleSAML\Module\statistics\Aggregator(true);
$aggregator->dumpConfig();
$aggregator->debugInfo();
$results = $aggregator->aggregate($debug);
$aggregator->debugInfo();
if (!$dryrun) {
$aggregator->store($results);
}
foreach ($results as $slot => $val) {
foreach ($val as $sp => $no) {
echo $sp . " " . count($no) . " - ";
}
echo "\n";
}
/**
* This function prints the help output.
* @return void
*/
function printHelp()
{
global $progName;
echo <<<END
Usage: $progName [options]
This program parses and aggregates SimpleSAMLphp log files.
Options:
-d, --debug Used when configuring the log file syntax. See doc.
--dry-run Aggregate but do not store the results.
END;
}
|