CC-2694: Create command line program for viewing/dumping log files

-install + upgrade script
-add liquidsoap to log files
This commit is contained in:
martin 2011-08-31 14:45:42 -04:00
parent 5f56538bff
commit f9a7ebcab5
3 changed files with 45 additions and 4 deletions

View file

@ -359,6 +359,10 @@ class AirtimeInstall
echo "* Installing airtime-user".PHP_EOL; echo "* Installing airtime-user".PHP_EOL;
$dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-user"; $dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-user";
exec("ln -s $dir /usr/bin/airtime-user"); exec("ln -s $dir /usr/bin/airtime-user");
echo "* Installing airtime-log".PHP_EOL;
$dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-log";
exec("ln -s $dir /usr/bin/airtime-log");
} }
public static function RemoveSymlinks() public static function RemoveSymlinks()
@ -366,6 +370,8 @@ class AirtimeInstall
exec("rm -f /usr/bin/airtime-import"); exec("rm -f /usr/bin/airtime-import");
exec("rm -f /usr/bin/airtime-update-db-settings"); exec("rm -f /usr/bin/airtime-update-db-settings");
exec("rm -f /usr/bin/airtime-check-system"); exec("rm -f /usr/bin/airtime-check-system");
exec("rm -f /usr/bin/airtime-user");
exec("rm -f /usr/bin/airtime-log");
} }
public static function InstallPhpCode() public static function InstallPhpCode()

View file

@ -17,6 +17,7 @@ require_once 'propel/runtime/lib/Propel.php';
Propel::init(__DIR__."/../../../airtime_mvc/application/configs/airtime-conf.php"); Propel::init(__DIR__."/../../../airtime_mvc/application/configs/airtime-conf.php");
class AirtimeInstall{ class AirtimeInstall{
const CONF_DIR_BINARIES = "/usr/lib/airtime";
public static function SetDefaultTimezone() public static function SetDefaultTimezone()
{ {
@ -32,6 +33,20 @@ class AirtimeInstall{
return true; return true;
} }
public static function GetUtilsSrcDir()
{
return __DIR__."/../../../utils";
}
public static function CreateSymlinksToUtils()
{
echo "* Installing airtime-log".PHP_EOL;
$dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-log";
copy(AirtimeInstall::GetUtilsSrcDir()."/airtime-log.php", AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-log.php");
exec("ln -s $dir /usr/bin/airtime-log");
}
public static function SetDefaultStreamSetting() public static function SetDefaultStreamSetting()
{ {
global $CC_DBC; global $CC_DBC;
@ -384,6 +399,7 @@ class AirtimeIni200{
Airtime200Upgrade::connectToDatabase(); Airtime200Upgrade::connectToDatabase();
AirtimeInstall::SetDefaultTimezone(); AirtimeInstall::SetDefaultTimezone();
AirtimeInstall::CreateSymlinksToUtils();
/* Airtime 2.0.0 starts interpreting all database times in UTC format. Prior to this, all the times /* Airtime 2.0.0 starts interpreting all database times in UTC format. Prior to this, all the times
* were stored using the local time zone. Let's convert to UTC time. */ * were stored using the local time zone. Let's convert to UTC time. */

View file

@ -1,12 +1,16 @@
<?php <?php
set_include_path(__DIR__.'/../airtime_mvc/library' . PATH_SEPARATOR . get_include_path()); $airtimeIni = getAirtimeConf();
$airtime_base_dir = $airtimeIni['general']['airtime_dir'];
set_include_path("$airtime_base_dir/library" . PATH_SEPARATOR . get_include_path());
require_once('Zend/Loader/Autoloader.php'); require_once('Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader = Zend_Loader_Autoloader::getInstance();
$log_files = array("media-monitor" => "/var/log/airtime/media-monitor/media-monitor.log", $log_files = array("media-monitor" => "/var/log/airtime/media-monitor/media-monitor.log",
"recorder" => "/var/log/airtime/show-recorder/show-recorder.log", "recorder" => "/var/log/airtime/show-recorder/show-recorder.log",
"playout" => "/var/log/airtime/pypo/pypo.log", "playout" => "/var/log/airtime/pypo/pypo.log",
"liquidsoap" => "/var/log/airtime/pypo-liquidsoap/ls_script.log",
"web" => "/var/log/airtime/zendphp.log"); "web" => "/var/log/airtime/zendphp.log");
array_filter($log_files, "file_exists"); array_filter($log_files, "file_exists");
@ -39,7 +43,7 @@ function viewSpecificLog($key){
function dumpAllLogs(){ function dumpAllLogs(){
$dateStr = gmdate("Y-m-d-H-i-s"); $dateStr = gmdate("Y-m-d-H-i-s");
$filename = __DIR__."/airtime-log-all-$dateStr.tgz"; $filename = "/tmp/airtime-log-all-$dateStr.tgz";
echo "Creating Airtime logs tgz file at $filename"; echo "Creating Airtime logs tgz file at $filename";
$command = "tar cfz $filename /var/log/airtime 2>/dev/null"; $command = "tar cfz $filename /var/log/airtime 2>/dev/null";
exec($command); exec($command);
@ -50,7 +54,7 @@ function dumpSpecificLog($key){
if (isKeyValid($key)){ if (isKeyValid($key)){
$dateStr = gmdate("Y-m-d-H-i-s"); $dateStr = gmdate("Y-m-d-H-i-s");
$filename = __DIR__."/airtime-log-$key-$dateStr.tgz"; $filename = "/tmp/airtime-log-$key-$dateStr.tgz";
echo "Creating Airtime logs tgz file at $filename"; echo "Creating Airtime logs tgz file at $filename";
$dir = dirname($log_files[$key]); $dir = dirname($log_files[$key]);
$command = "tar cfz $filename $dir 2>/dev/null"; $command = "tar cfz $filename $dir 2>/dev/null";
@ -75,6 +79,18 @@ function tailSpecificLog($key){
} else printUsage(); } else printUsage();
} }
function getAirtimeConf()
{
$ini = parse_ini_file("/etc/airtime/airtime.conf", true);
if ($ini === false){
echo "Error reading /etc/airtime/airtime.conf.".PHP_EOL;
exit;
}
return $ini;
}
try { try {
$keys = implode("|", array_keys($log_files)); $keys = implode("|", array_keys($log_files));
$opts = new Zend_Console_Getopt( $opts = new Zend_Console_Getopt(
@ -113,6 +129,9 @@ if (isset($opts->v)){
} else { } else {
tailSpecificLog($opts->t); tailSpecificLog($opts->t);
} }
} else {
printUsage();
exit;
} }
echo PHP_EOL; echo PHP_EOL;