CC-2694: Create command line program for viewing/dumping log files
-initial commit
This commit is contained in:
parent
1e70feda6b
commit
72350184d8
1 changed files with 113 additions and 0 deletions
113
utils/airtime-log.php
Normal file
113
utils/airtime-log.php
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
|
||||
set_include_path(__DIR__.'/../airtime_mvc/library' . PATH_SEPARATOR . get_include_path());
|
||||
require_once('Zend/Loader/Autoloader.php');
|
||||
$autoloader = Zend_Loader_Autoloader::getInstance();
|
||||
|
||||
$log_files = array("media-monitor" => "/var/log/airtime/media-monitor/media-monitor.log",
|
||||
"show-recorder" => "/var/log/airtime/show-recorder/show-recorder.log",
|
||||
"playout" => "/var/log/airtime/pypo/pypo.log",
|
||||
"web" => "/var/log/airtime/zendphp.log");
|
||||
|
||||
function printUsage($opts, $userMsg)
|
||||
{
|
||||
$msg = $opts->getUsageMessage();
|
||||
echo $userMsg;
|
||||
echo PHP_EOL."Usage: airtime-log [options]";
|
||||
echo substr($msg, strpos($msg, "\n")).PHP_EOL;
|
||||
}
|
||||
|
||||
function isKeyValid($key){
|
||||
global $log_files;
|
||||
return array_key_exists($key, $log_files);
|
||||
}
|
||||
|
||||
function viewSpecificLog($key){
|
||||
global $log_files;
|
||||
|
||||
if (isKeyValid($key)){
|
||||
echo "Viewing $key log\n";
|
||||
pcntl_exec(exec("which less"), array($log_files[$key]));
|
||||
pcntl_wait($status);
|
||||
}
|
||||
}
|
||||
|
||||
function dumpAllLogs(){
|
||||
$dateStr = gmdate("Y-m-d-H-i-s");
|
||||
$filename = __DIR__."/airtime-log-all-$dateStr.tgz";
|
||||
echo "Creating Airtime logs tgz file at $filename";
|
||||
$command = "tar cfz $filename /var/log/airtime 2>/dev/null";
|
||||
exec($command);
|
||||
}
|
||||
|
||||
function dumpSpecificLog($key){
|
||||
global $log_files;
|
||||
|
||||
if (isKeyValid($key)){
|
||||
$dateStr = gmdate("Y-m-d-H-i-s");
|
||||
$filename = __DIR__."/airtime-log-$key-$dateStr.tgz";
|
||||
echo "Creating Airtime logs tgz file at $filename";
|
||||
$dir = dirname($log_files[$key]);
|
||||
$command = "tar cfz $filename $dir 2>/dev/null";
|
||||
exec($command);
|
||||
}
|
||||
}
|
||||
|
||||
function tailAllLogs(){
|
||||
global $log_files;
|
||||
echo "Tail all Airtime logs";
|
||||
pcntl_exec(exec("which multitail"), $log_files);
|
||||
pcntl_wait($status);
|
||||
}
|
||||
|
||||
function tailSpecificLog($key){
|
||||
global $log_files;
|
||||
|
||||
if (isKeyValid($key)){
|
||||
echo "Tail $key log";
|
||||
pcntl_exec(exec("which tail"), array("-F", $log_files[$key]));
|
||||
pcntl_wait($status);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$opts = new Zend_Console_Getopt(
|
||||
array(
|
||||
'view|v-s' => "Display log file\n"
|
||||
."\t\tmediamonitor|playout|recorder|web (ALL by default)",
|
||||
'dump|d-s' => "Collect all log files and compress into a tarball\n"
|
||||
."\t\tmediamonitor|playout|recorder|web (ALL by default)",
|
||||
'tail|t-s' => "View any new entries appended to log files in real-time\n"
|
||||
."\t\tmediamonitor|playout|recorder|web (ALL by default)"
|
||||
)
|
||||
);
|
||||
$opts->parse();
|
||||
}
|
||||
catch (Zend_Console_Getopt_Exception $e) {
|
||||
print $e->getMessage() .PHP_EOL;
|
||||
printUsage($opts, "");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (isset($opts->v)){
|
||||
if ($opts->v === true){
|
||||
echo "Please choose a specific log to view";
|
||||
} else {
|
||||
viewSpecificLog($opts->v);
|
||||
}
|
||||
} else if (isset($opts->d)){
|
||||
if ($opts->d === true){
|
||||
dumpAllLogs();
|
||||
} else {
|
||||
dumpSpecificLog($opts->d);
|
||||
}
|
||||
} else if (isset($opts->t)){
|
||||
if ($opts->t === true){
|
||||
tailAllLogs();
|
||||
} else {
|
||||
tailSpecificLog($opts->t);
|
||||
}
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue