2012-12-08 21:38:10 +04:00
|
|
|
#!/usr/bin/php -Cq
|
|
|
|
<?php
|
|
|
|
|
2016-09-04 04:19:48 +03:00
|
|
|
require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
|
|
|
|
require_once(CONST_BasePath.'/lib/init-cmd.php');
|
|
|
|
ini_set('memory_limit', '800M');
|
2012-12-08 21:38:10 +04:00
|
|
|
|
2016-09-10 22:10:52 +03:00
|
|
|
$aCMDOptions
|
|
|
|
= array(
|
2016-09-04 04:19:48 +03:00
|
|
|
"Manage service blocks / restrictions",
|
|
|
|
array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
|
|
|
|
array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
|
|
|
|
array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
|
|
|
|
array('list', 'l', 0, 1, 0, 0, 'bool', 'List recent blocks'),
|
|
|
|
array('delete', 'd', 0, 1, 0, 0, 'bool', 'Clear recent blocks list'),
|
|
|
|
array('flush', '', 0, 1, 0, 0, 'bool', 'Flush all blocks / stats'),
|
2016-09-10 22:10:52 +03:00
|
|
|
);
|
2016-09-04 04:19:48 +03:00
|
|
|
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
|
2012-12-08 21:38:10 +04:00
|
|
|
|
2016-09-04 04:19:48 +03:00
|
|
|
$m = getBucketMemcache();
|
2016-09-08 04:16:22 +03:00
|
|
|
if (!$m) {
|
2016-09-04 04:19:48 +03:00
|
|
|
echo "ERROR: Bucket memcache is not configured\n";
|
|
|
|
exit;
|
|
|
|
}
|
2012-12-08 21:38:10 +04:00
|
|
|
|
2016-09-08 04:16:22 +03:00
|
|
|
if ($aResult['list']) {
|
2016-09-04 04:19:48 +03:00
|
|
|
$iCurrentSleeping = $m->get('sleepCounter');
|
|
|
|
echo "\n Sleeping blocks count: $iCurrentSleeping\n";
|
2012-12-08 22:55:17 +04:00
|
|
|
|
2016-09-04 04:19:48 +03:00
|
|
|
$aBlocks = getBucketBlocks();
|
|
|
|
echo "\n";
|
|
|
|
printf(" %-40s | %12s | %7s | %13s | %31s | %8s\n", "Key", "Total Blocks", "Current", "Still Blocked", "Last Block Time", "Sleeping");
|
|
|
|
printf(" %'--40s-|-%'-12s-|-%'-7s-|-%'-13s-|-%'-31s-|-%'-8s\n", "", "", "", "", "", "");
|
2016-09-08 04:16:22 +03:00
|
|
|
foreach ($aBlocks as $sKey => $aDetails) {
|
2016-09-11 06:22:51 +03:00
|
|
|
printf(
|
|
|
|
" %-40s | %12s | %7s | %13s | %31s | %8s\n",
|
|
|
|
$sKey,
|
2016-09-14 04:16:46 +03:00
|
|
|
$aDetails['totalBlocks'],
|
2016-09-11 06:22:51 +03:00
|
|
|
(int)$aDetails['currentBucketSize'],
|
2016-09-14 04:16:46 +03:00
|
|
|
$aDetails['currentlyBlocked']?'Y':'N',
|
2016-09-11 06:22:51 +03:00
|
|
|
date("r", $aDetails['lastBlockTimestamp']),
|
|
|
|
$aDetails['isSleeping']?'Y':'N'
|
|
|
|
);
|
2016-09-04 04:19:48 +03:00
|
|
|
}
|
|
|
|
echo "\n";
|
|
|
|
}
|
2012-12-08 21:38:10 +04:00
|
|
|
|
2016-09-08 04:16:22 +03:00
|
|
|
if ($aResult['delete']) {
|
2016-09-04 04:19:48 +03:00
|
|
|
$m->set('sleepCounter', 0);
|
|
|
|
clearBucketBlocks();
|
|
|
|
}
|
2012-12-09 01:39:24 +04:00
|
|
|
|
2016-09-08 04:16:22 +03:00
|
|
|
if ($aResult['flush']) {
|
2016-09-04 04:19:48 +03:00
|
|
|
$m->flush();
|
|
|
|
}
|