diff options
Diffstat (limited to 'config/lightsquid')
-rw-r--r-- | config/lightsquid/lightsquid.inc | 636 |
1 files changed, 318 insertions, 318 deletions
diff --git a/config/lightsquid/lightsquid.inc b/config/lightsquid/lightsquid.inc index a062f401..5e16587a 100644 --- a/config/lightsquid/lightsquid.inc +++ b/config/lightsquid/lightsquid.inc @@ -1,29 +1,29 @@ <?php /* - lightsquid.inc - Copyright (C) 2006 Serg Dvorianceev - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. + lightsquid.inc + Copyright (C) 2006 Serg Dvorianceev + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ require_once('globals.inc'); @@ -42,53 +42,53 @@ define('LS_GUI_DEBUG', 'on'); define('LS_LOG_FILE', '/tmp/lightsquid_gui.log'); // configuration settings !-- CHECK THIS --! -define('LS_CONFIGPATH', '/usr/local/etc/lightsquid'); -define('LS_CONFIGFILE', 'lightsquid.cfg'); -define('LS_CONFIGFILE_DIST', 'lightsquid.cfg.dist'); -define('LS_WWWPATH', '/usr/local/www/lightsquid'); -define('LS_TEMPLATEPATH', '/usr/local/www/lightsquid/tpl'); -define('LS_LANGPATH', '/usr/local/share/lightsquid/lang'); -define('LS_REPORTPATH', '/var/lightsquid/report'); -define('LS_SQUIDLOGPATH', '/var/squid/log'); -define('LS_SQUIDLOG', 'access.log'); -define('LS_IP2NAMEPATH', '/usr/local/libexec/lightsquid'); - -define('CRONTAB_FILE', '/var/cron/tabs/root'); -define('CRONTAB_LS_TEMPLATE', '/usr/bin/perl /usr/local/www/lightsquid/lightparser.pl'); -define('CRONTAB_LS_JOBKEY', '/lightparser.pl'); -define('CRONTAB_SQUID_TEMPLATE', '/usr/local/sbin/squid -k rotate > /dev/null'); -define('CRONTAB_SQUID_JOBKEY', '/squid -k rotate'); +define('LS_CONFIGPATH', '/usr/local/etc/lightsquid'); +define('LS_CONFIGFILE', 'lightsquid.cfg'); +define('LS_CONFIGFILE_DIST', 'lightsquid.cfg.dist'); +define('LS_WWWPATH', '/usr/local/www/lightsquid'); +define('LS_TEMPLATEPATH', '/usr/local/www/lightsquid/tpl'); +define('LS_LANGPATH', '/usr/local/share/lightsquid/lang'); +define('LS_REPORTPATH', '/var/lightsquid/report'); +define('LS_SQUIDLOGPATH', '/var/squid/log'); +define('LS_SQUIDLOG', 'access.log'); +define('LS_IP2NAMEPATH', '/usr/local/libexec/lightsquid'); + +define('CRONTAB_FILE', '/var/cron/tabs/root'); +define('CRONTAB_LS_TEMPLATE', '/usr/bin/perl /usr/local/www/lightsquid/lightparser.pl'); +define('CRONTAB_LS_JOBKEY', '/lightparser.pl'); +define('CRONTAB_SQUID_TEMPLATE', '/usr/local/sbin/squid -k rotate > /dev/null'); +define('CRONTAB_SQUID_JOBKEY', '/squid -k rotate'); // default values -define('LS_DEF_IP2NAME', 'dns'); -define('LS_DEF_SQUIDLOGTYPE', '0'); -define('LS_DEF_SKIPURL', 'zzz\.zzz'); -define('LS_DEF_LANG', 'eng'); -define('LS_DEF_TEMPLATE', 'base'); -define('LS_DEF_BARCOLOR', 'orange'); +define('LS_DEF_IP2NAME', 'dns'); +define('LS_DEF_SQUIDLOGTYPE', '0'); +define('LS_DEF_SKIPURL', 'zzz\.zzz'); +define('LS_DEF_LANG', 'eng'); +define('LS_DEF_TEMPLATE', 'base'); +define('LS_DEF_BARCOLOR', 'orange'); // variable names -define('LS_VAR_CFGPATH', 'cfgpath'); -define('LS_VAR_LOGPATH', 'logpath'); -define('LS_VAR_TPLPATH', 'tplpath'); -define('LS_VAR_LANGPATH', 'langpath'); -define('LS_VAR_LANG', 'lang'); -define('LS_VAR_REPORTPATH', 'reportpath'); -define('LS_VAR_SQUIDLOGTYPE', 'squidlogtype'); -define('LS_VAR_SKIPURL', 'skipurl'); -define('LS_VAR_IP2NAMEPATH', 'ip2namepath'); -define('LS_VAR_IP2NAME', 'ip2name'); -define('LS_VAR_TEMPLATE', 'templatename'); -define('LS_VAR_BARCOLOR', 'barcolor'); +define('LS_VAR_CFGPATH', 'cfgpath'); +define('LS_VAR_LOGPATH', 'logpath'); +define('LS_VAR_TPLPATH', 'tplpath'); +define('LS_VAR_LANGPATH', 'langpath'); +define('LS_VAR_LANG', 'lang'); +define('LS_VAR_REPORTPATH', 'reportpath'); +define('LS_VAR_SQUIDLOGTYPE', 'squidlogtype'); +define('LS_VAR_SKIPURL', 'skipurl'); +define('LS_VAR_IP2NAMEPATH', 'ip2namepath'); +define('LS_VAR_IP2NAME', 'ip2name'); +define('LS_VAR_TEMPLATE', 'templatename'); +define('LS_VAR_BARCOLOR', 'barcolor'); // xml variables -define('LS_XML_LANG', 'lightsquid_lang'); -define('LS_XML_SKIPURL', 'lightsquid_skipurl'); -define('LS_XML_IP2NAME', 'lightsquid_ip2name'); -define('LS_XML_TEMPLATE', 'lightsquid_template'); -define('LS_XML_BARCOLOR', 'lightsquid_barcolor'); -define('LS_XML_SHEDULERTIME', 'lightsquid_refreshsheduler_time'); -define('LS_XML_SQUID_SHEDULERTIME', 'lightsquid_squidrotatelog_sheduler_time'); +define('LS_XML_LANG', 'lightsquid_lang'); +define('LS_XML_SKIPURL', 'lightsquid_skipurl'); +define('LS_XML_IP2NAME', 'lightsquid_ip2name'); +define('LS_XML_TEMPLATE', 'lightsquid_template'); +define('LS_XML_BARCOLOR', 'lightsquid_barcolor'); +define('LS_XML_SHEDULERTIME', 'lightsquid_refreshsheduler_time'); +define('LS_XML_SQUID_SHEDULERTIME', 'lightsquid_squidrotatelog_sheduler_time'); function lightsquid_install() { update_log("lightsquid_install: started"); @@ -114,28 +114,28 @@ function lightsquid_install() { } function lightsquid_deinstall() { - update_log("lightsquid_deinstall: started"); - - // delete cron task's - ls_setup_cron("lightsquid_squid_rotate", "", "", false); - ls_setup_cron("lightsquid_parser", "", "", false); - // control shoot to head :) -# mwexec(CMD_PKGDELETE); - // remove '/usr/local/www/lightsquid' dir - any time can't be removed by templates -# if (file_exists(LS_WWWPATH)) -# mwexec("rm -rf " . LS_WWWPATH); - - update_log("lightsquid_deinstall: stopped"); + update_log("lightsquid_deinstall: started"); + + // delete cron task's + ls_setup_cron("lightsquid_squid_rotate", "", "", false); + ls_setup_cron("lightsquid_parser", "", "", false); + // control shoot to head :) +# mwexec(CMD_PKGDELETE); + // remove '/usr/local/www/lightsquid' dir - any time can't be removed by templates +# if (file_exists(LS_WWWPATH)) +# mwexec("rm -rf " . LS_WWWPATH); + + update_log("lightsquid_deinstall: stopped"); } function lightsquid_resync() { - global $config; - $tm = ''; - $tm_squid = ''; + global $config; + $tm = ''; + $tm_squid = ''; - # check perl - if (!file_exists("/usr/bin/perl")) - mwexec("ln -s /usr/local/bin/perl /usr/bin/perl"); + # check perl + if (!file_exists("/usr/bin/perl")) + mwexec("ln -s /usr/local/bin/perl /usr/bin/perl"); // create lightsquid report catalog if (!file_exists(LS_REPORTPATH)) { @@ -145,162 +145,162 @@ function lightsquid_resync() { mwexec("/bin/chmod -R u+w /usr/local/etc/lightsquid"); - // debug - $light_test = array(); - if (($_POST['Submit'] === 'Save') or !isset($_POST['Submit'])) { - $lsconf_var = array(); - - // variables for update - $lsconf_var[LS_VAR_CFGPATH] = "\"" . LS_CONFIGPATH . "\""; - $lsconf_var[LS_VAR_LOGPATH] = "\"" . LS_SQUIDLOGPATH . "\""; - $lsconf_var[LS_VAR_TPLPATH] = "\"" . LS_TEMPLATEPATH . "\""; - $lsconf_var[LS_VAR_LANGPATH] = "\"" . LS_LANGPATH . "\""; - $lsconf_var[LS_VAR_REPORTPATH] = "\"" . LS_REPORTPATH . "\""; - $lsconf_var[LS_VAR_IP2NAMEPATH] = "\"" . LS_IP2NAMEPATH . "\""; - - $lsconf_var[LS_VAR_LANG] = "\"" . LS_DEF_LANG . "\""; - $lsconf_var[LS_VAR_TEMPLATE] = "\"" . LS_DEF_TEMPLATE . "\""; - $lsconf_var[LS_VAR_IP2NAME] = "\"" . LS_DEF_IP2NAME . "\""; - $lsconf_var[LS_VAR_SKIPURL] = "\"" . LS_DEF_SKIPURL . "\""; - $lsconf_var[LS_VAR_SQUIDLOGTYPE] = LS_DEF_SQUIDLOGTYPE; - - // update variables from package GUI config - if (isset($config['installedpackages']['lightsquid']['config'][0])) { - $cfg = $config['installedpackages']['lightsquid']['config'][0]; - - $tm = $cfg[LS_XML_SHEDULERTIME]; - $tm_squid = $cfg[LS_XML_SQUID_SHEDULERTIME]; - - if (isset($cfg[LS_XML_LANG]) and !empty($cfg[LS_XML_LANG])) - $lsconf_var[LS_VAR_LANG] = "\"" . $cfg[LS_XML_LANG] . "\";"; - - if (isset($cfg[LS_XML_SKIPURL]) and !empty($cfg[LS_XML_SKIPURL])) - $lsconf_var[LS_VAR_SKIPURL] = "\"" . $cfg[LS_XML_SKIPURL] . "\";"; - - if (isset($cfg[LS_XML_IP2NAME]) and !empty($cfg[LS_XML_IP2NAME] )) - $lsconf_var[LS_VAR_IP2NAME] = "\"" . $cfg[LS_XML_IP2NAME] . "\";"; - - if (isset($cfg[LS_XML_TEMPLATE]) and !empty($cfg[LS_XML_TEMPLATE])) { - $tpl_val = $cfg[LS_XML_TEMPLATE]; - // check template path - if (!file_exists(LS_TEMPLATEPATH."/$tpl_val")) $tpl_val = 'base'; - $lsconf_var[LS_VAR_TEMPLATE] = "\"" . $tpl_val . "\";"; - } - - if (isset($cfg[LS_XML_BARCOLOR]) and !empty($cfg[LS_XML_BARCOLOR])) - $lsconf_var[LS_VAR_BARCOLOR] = "\"" . $cfg[LS_XML_BARCOLOR] . "\";"; - } - - $lsconf = ""; - $lsconf_file = LS_CONFIGPATH . "/" . LS_CONFIGFILE; - // open lightsquid config - if (file_exists($lsconf_file)) { - $lsconf = file_get_contents($lsconf_file); - update_log("Load config file $lsconf_file"); - } else { - update_log("Error loading config file $lsconf_file"); - // or open from 'lightsquid.cfg.dist' - $lsconf_dist_file = LS_CONFIGPATH . "/" . LS_CONFIGFILE_DIST; - if (file_exists($lsconf_dist_file)) { - $lsconf = file_get_contents($lsconf_dist_file); - update_log("Load config dist. file $lsconf_dist_file"); - } else update_log("Error loading config dist. file $lsconf_dist_file"); - } - - // update lightsquid config - if (!empty($lsconf)) { - $lsconf = explode("\n", $lsconf); - foreach ($lsconf_var as $key => $val) { - for($i = 0; $i < count($lsconf); $i++) { - $s = trim($lsconf[$i]); - $e_key = "^[$]" . $key . "[ ]*[=]+"; -# update_log("Regular: eregi(\"$e_key," . "'$s')"); // debug regular template - if (eregi($e_key, $s)) { -# update_log("Regular PASSED: eregi(\"$e_key," . "'$s')"); // debug regular template - $lsconf[$i] = '$' . "$key = $val;"; - update_log("Update config: $key=$val"); - } - } - } - - $lsconf = implode("\n", $lsconf); - $fl = file_put_contents($lsconf_file, $lsconf); - update_log("Save config file $lsconf_file ($fl)"); - } - - // set shedule - refresh data job + // debug + $light_test = array(); + if (($_POST['Submit'] === 'Save') or !isset($_POST['Submit'])) { + $lsconf_var = array(); + + // variables for update + $lsconf_var[LS_VAR_CFGPATH] = "\"" . LS_CONFIGPATH . "\""; + $lsconf_var[LS_VAR_LOGPATH] = "\"" . LS_SQUIDLOGPATH . "\""; + $lsconf_var[LS_VAR_TPLPATH] = "\"" . LS_TEMPLATEPATH . "\""; + $lsconf_var[LS_VAR_LANGPATH] = "\"" . LS_LANGPATH . "\""; + $lsconf_var[LS_VAR_REPORTPATH] = "\"" . LS_REPORTPATH . "\""; + $lsconf_var[LS_VAR_IP2NAMEPATH] = "\"" . LS_IP2NAMEPATH . "\""; + + $lsconf_var[LS_VAR_LANG] = "\"" . LS_DEF_LANG . "\""; + $lsconf_var[LS_VAR_TEMPLATE] = "\"" . LS_DEF_TEMPLATE . "\""; + $lsconf_var[LS_VAR_IP2NAME] = "\"" . LS_DEF_IP2NAME . "\""; + $lsconf_var[LS_VAR_SKIPURL] = "\"" . LS_DEF_SKIPURL . "\""; + $lsconf_var[LS_VAR_SQUIDLOGTYPE]= LS_DEF_SQUIDLOGTYPE; + + // update variables from package GUI config + if (isset($config['installedpackages']['lightsquid']['config'][0])) { + $cfg = $config['installedpackages']['lightsquid']['config'][0]; + + $tm = $cfg[LS_XML_SHEDULERTIME]; + $tm_squid = $cfg[LS_XML_SQUID_SHEDULERTIME]; + + if (isset($cfg[LS_XML_LANG]) and !empty($cfg[LS_XML_LANG])) + $lsconf_var[LS_VAR_LANG] = "\"" . $cfg[LS_XML_LANG] . "\";"; + + if (isset($cfg[LS_XML_SKIPURL]) and !empty($cfg[LS_XML_SKIPURL])) + $lsconf_var[LS_VAR_SKIPURL] = "\"" . $cfg[LS_XML_SKIPURL] . "\";"; + + if (isset($cfg[LS_XML_IP2NAME]) and !empty($cfg[LS_XML_IP2NAME] )) + $lsconf_var[LS_VAR_IP2NAME] = "\"" . $cfg[LS_XML_IP2NAME] . "\";"; + + if (isset($cfg[LS_XML_TEMPLATE]) and !empty($cfg[LS_XML_TEMPLATE])) { + $tpl_val = $cfg[LS_XML_TEMPLATE]; + // check template path + if (!file_exists(LS_TEMPLATEPATH."/$tpl_val")) $tpl_val = 'base'; + $lsconf_var[LS_VAR_TEMPLATE] = "\"" . $tpl_val . "\";"; + } + + if (isset($cfg[LS_XML_BARCOLOR]) and !empty($cfg[LS_XML_BARCOLOR])) + $lsconf_var[LS_VAR_BARCOLOR] = "\"" . $cfg[LS_XML_BARCOLOR] . "\";"; + } + + $lsconf = ""; + $lsconf_file = LS_CONFIGPATH . "/" . LS_CONFIGFILE; + // open lightsquid config + if (file_exists($lsconf_file)) { + $lsconf = file_get_contents($lsconf_file); + update_log("Load config file $lsconf_file"); + } else { + update_log("Error loading config file $lsconf_file"); + // or open from 'lightsquid.cfg.dist' + $lsconf_dist_file = LS_CONFIGPATH . "/" . LS_CONFIGFILE_DIST; + if (file_exists($lsconf_dist_file)) { + $lsconf = file_get_contents($lsconf_dist_file); + update_log("Load config dist. file $lsconf_dist_file"); + } else update_log("Error loading config dist. file $lsconf_dist_file"); + } + + // update lightsquid config + if (!empty($lsconf)) { + $lsconf = explode("\n", $lsconf); + foreach ($lsconf_var as $key => $val) { + for($i = 0; $i < count($lsconf); $i++) { + $s = trim($lsconf[$i]); + $e_key = "^[$]" . $key . "[ ]*[=]+"; +# update_log("Regular: eregi(\"$e_key," . "'$s')"); // debug regular template + if (eregi($e_key, $s)) { +# update_log("Regular PASSED: eregi(\"$e_key," . "'$s')"); // debug regular template + $lsconf[$i] = '$' . "$key = $val;"; + update_log("Update config: $key=$val"); + } + } + } + + $lsconf = implode("\n", $lsconf); + $fl = file_put_contents($lsconf_file, $lsconf); + update_log("Save config file $lsconf_file ($fl)"); + } + + // set shedule - refresh data job if ($tm) { - $on = false; - $opt = array("*", "*", "*", "*", "*", "root", CRONTAB_LS_TEMPLATE . " today"); - switch($tm) { - case 'lhp_none': $on = false; break; - case 'lhp_10m': $on = true; $opt[0]= "*/10"; break; - case 'lhp_20m': $on = true; $opt[0]= "*/20"; break; - case 'lhp_30m': $on = true; $opt[0]= "*/30"; break; - case 'lhp_40m': $on = true; $opt[0]= "*/40"; break; - case 'lhp_50m': $on = true; $opt[0]= "*/50"; break; - case 'lhp_60m': $on = true; $opt[0]= "*/60"; break; - case 'lhp_2h': $on = true; $opt[0]= "0"; $opt[1]= "*/2"; break; - case 'lhp_3h': $on = true; $opt[0]= "0"; $opt[1]= "*/3"; break; - case 'lhp_4h': $on = true; $opt[0]= "0"; $opt[1]= "*/4"; break; - case 'lhp_6h': $on = true; $opt[0]= "0"; $opt[1]= "*/6"; break; - case 'lhp_8h': $on = true; $opt[0]= "0"; $opt[1]= "*/8"; break; - case 'lhp_12h': $on = true; $opt[0]= "0"; $opt[1]= "*/12"; break; - case 'lhp_24h': $on = true; $opt[0]= "45"; $opt[1]= "23"; break; # dayly at 23:45 - } - ls_setup_cron("lightsquid_parser_today", $opt, CRONTAB_LS_JOBKEY, $on); - - # fix possible data lost with 00:00 script start - rescan yesterday - $opt = array("15", "0", "*", "*", "*", "root", CRONTAB_LS_TEMPLATE . " yesterday"); - ls_setup_cron("lightsquid_parser_yesterday", $opt, CRONTAB_LS_JOBKEY, $on); - - } else { - ls_setup_cron("lightsquid_parser_today", "", "", false); - ls_setup_cron("lightsquid_parser_yesterday", "", "", false); - } - - // set shedule - squid rotate -# if ($tm_squid) { -# $on = false; -# $opt = array("0", "0", "*", "*", "*", "root", CRONTAB_SQUID_TEMPLATE); -# switch($tm_squid) { -# // day of month -# case 'lsr_none':$on = false; break; -# case 'lsr_d1': $on = true; $opt[2]= "*/1"; break; -# case 'lsr_d2': $on = true; $opt[2]= "*/2"; break; -# case 'lsr_d3': $on = true; $opt[2]= "*/3"; break; -# case 'lsr_d4': $on = true; $opt[2]= "*/4"; break; -# case 'lsr_d5': $on = true; $opt[2]= "*/5"; break; -# case 'lsr_d6': $on = true; $opt[2]= "*/6"; break; -# case 'lsr_d10': $on = true; $opt[2]= "*/10"; break; -# case 'lsr_d15': $on = true; $opt[2]= "*/15"; break; -# case 'lsr_d20': $on = true; $opt[2]= "*/20"; break; -# case 'lsr_d25': $on = true; $opt[2]= "*/25"; break; -# case 'lsr_d30': $on = true; $opt[2]= "*/30"; break; -# // day of week -# case 'lsr_w1': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w2': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w3': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w4': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w5': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w6': $on = true; $opt[4]= "*/1"; break; -# case 'lsr_w7': $on = true; $opt[4]= "*/1"; break; -# } -# ls_setup_cron("lightsquid_squid_rotate", $opt, CRONTAB_SQUID_JOBKEY, $on); -# } else - ls_setup_cron("lightsquid_squid_rotate", "", "", false); - - // update squid conf - if (isset($config['installedpackages']['squid']['config'][0])) { - $config['installedpackages']['squid']['config'][0]['log_enabled'] = 'on'; - $config['installedpackages']['squid']['config'][0]['log_dir'] = LS_SQUIDLOGPATH; - write_config(); - squid_resync(); - } - } - - if ($_POST['Submit'] === 'Refresh now') refresh_now(); - if ($_POST['Submit'] === 'Refresh full') refresh_full(); + $on = false; + $opt = array("*", "*", "*", "*", "*", "root", CRONTAB_LS_TEMPLATE . " today"); + switch($tm) { + case 'lhp_none': $on = false; break; + case 'lhp_10m': $on = true; $opt[0]= "*/10"; break; + case 'lhp_20m': $on = true; $opt[0]= "*/20"; break; + case 'lhp_30m': $on = true; $opt[0]= "*/30"; break; + case 'lhp_40m': $on = true; $opt[0]= "*/40"; break; + case 'lhp_50m': $on = true; $opt[0]= "*/50"; break; + case 'lhp_60m': $on = true; $opt[0]= "*/60"; break; + case 'lhp_2h': $on = true; $opt[0]= "0"; $opt[1]= "*/2"; break; + case 'lhp_3h': $on = true; $opt[0]= "0"; $opt[1]= "*/3"; break; + case 'lhp_4h': $on = true; $opt[0]= "0"; $opt[1]= "*/4"; break; + case 'lhp_6h': $on = true; $opt[0]= "0"; $opt[1]= "*/6"; break; + case 'lhp_8h': $on = true; $opt[0]= "0"; $opt[1]= "*/8"; break; + case 'lhp_12h': $on = true; $opt[0]= "0"; $opt[1]= "*/12"; break; + case 'lhp_24h': $on = true; $opt[0]= "45"; $opt[1]= "23"; break; # dayly at 23:45 + } + ls_setup_cron("lightsquid_parser_today", $opt, CRONTAB_LS_JOBKEY, $on); + + # fix possible data lost with 00:00 script start - rescan yesterday + $opt = array("15", "0", "*", "*", "*", "root", CRONTAB_LS_TEMPLATE . " yesterday"); + ls_setup_cron("lightsquid_parser_yesterday", $opt, CRONTAB_LS_JOBKEY, $on); + + } else { + ls_setup_cron("lightsquid_parser_today", "", "", false); + ls_setup_cron("lightsquid_parser_yesterday", "", "", false); + } + + // set shedule - squid rotate +# if ($tm_squid) { +# $on = false; +# $opt = array("0", "0", "*", "*", "*", "root", CRONTAB_SQUID_TEMPLATE); +# switch($tm_squid) { +# // day of month +# case 'lsr_none':$on = false; break; +# case 'lsr_d1': $on = true; $opt[2]= "*/1"; break; +# case 'lsr_d2': $on = true; $opt[2]= "*/2"; break; +# case 'lsr_d3': $on = true; $opt[2]= "*/3"; break; +# case 'lsr_d4': $on = true; $opt[2]= "*/4"; break; +# case 'lsr_d5': $on = true; $opt[2]= "*/5"; break; +# case 'lsr_d6': $on = true; $opt[2]= "*/6"; break; +# case 'lsr_d10': $on = true; $opt[2]= "*/10"; break; +# case 'lsr_d15': $on = true; $opt[2]= "*/15"; break; +# case 'lsr_d20': $on = true; $opt[2]= "*/20"; break; +# case 'lsr_d25': $on = true; $opt[2]= "*/25"; break; +# case 'lsr_d30': $on = true; $opt[2]= "*/30"; break; +# // day of week +# case 'lsr_w1': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w2': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w3': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w4': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w5': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w6': $on = true; $opt[4]= "*/1"; break; +# case 'lsr_w7': $on = true; $opt[4]= "*/1"; break; +# } +# ls_setup_cron("lightsquid_squid_rotate", $opt, CRONTAB_SQUID_JOBKEY, $on); +# } else + ls_setup_cron("lightsquid_squid_rotate", "", "", false); + + // update squid conf + if (isset($config['installedpackages']['squid']['config'][0])) { + $config['installedpackages']['squid']['config'][0]['log_enabled'] = 'on'; + $config['installedpackages']['squid']['config'][0]['log_dir'] = LS_SQUIDLOGPATH; + write_config(); + squid_resync(); + } + } + + if ($_POST['Submit'] === 'Refresh now') refresh_now(); + if ($_POST['Submit'] === 'Refresh full') refresh_full(); } // setup cron tasks @@ -310,91 +310,91 @@ function lightsquid_resync() { // - $task_name: cron task name (for config identification) /for searching my cron tasks/ // - $options: array=[0:minute][1:hour][2:mday][3:month][4:wday][5:who][6:cmd] // - $task_key: cron command key for searching -// - $on_off: true-'on task', false-'off' task +// - $on_off: true-'on task', false-'off' task // required: $task_nameand $on_off // ***************************************************************************** define('FIELD_TASKNAME', 'task_name'); function ls_setup_cron($task_name, $options, $task_key, $on_off) { - global $config; - update_log("ls_setup_cron: start task_name=$task_name, task_key=$task_key, on_off=$on_off"); - - // check input params - if(!$task_name) { - update_log("ls_setup_cron: exit - uncomplete input params."); - return; - } - - // delete old task(s) - if (is_array($config['cron']['item'])) { - foreach ($config['cron']['item'] as $key => $item) { - # unset crontask by name - if (!empty($task_name) && ($item[FIELD_TASKNAME] == $task_name)) { - unset($config['cron']['item'][$key]); - } else - # unset crontask by cmd - if ($options[6] && (strpos($item['command'], $options[6]) !== false)) { - unset($config['cron']['item'][$key]); - } - } - } - - # install cron task - if ($on_off) { - if ($task_key) { - if (is_array($options)) { - # add new - $cron_item = array(); - $cron_item[FIELD_TASKNAME] = $task_name; - $cron_item['minute'] = $options[0]; - $cron_item['hour'] = $options[1]; - $cron_item['mday'] = $options[2]; - $cron_item['month'] = $options[3]; - $cron_item['wday'] = $options[4]; - $cron_item['who'] = $options[5]; - $cron_item['command'] = $options[6]; - - # check options - if (!$cron_item['who']) $cron_item['who'] = "nobody"; - - $config['cron']['item'][] = $cron_item; - update_log("ls_setup_cron: add cron task '{$task_name}'='{$cron_item['command']}'"); - } - } else - // log - update_log("ls_setup_cron: input prm 'task_key' not defined"); - } - - write_config("Installed cron task '$task_name' for 'lightsquid' package"); - configure_cron(); - update_log("ls_setup_cron: Apply new cron settings."); + global $config; + update_log("ls_setup_cron: start task_name=$task_name, task_key=$task_key, on_off=$on_off"); + + // check input params + if(!$task_name) { + update_log("ls_setup_cron: exit - uncomplete input params."); + return; + } + + // delete old task(s) + if (is_array($config['cron']['item'])) { + foreach ($config['cron']['item'] as $key => $item) { + # unset crontask by name + if (!empty($task_name) && ($item[FIELD_TASKNAME] == $task_name)) { + unset($config['cron']['item'][$key]); + } else + # unset crontask by cmd + if ($options[6] && (strpos($item['command'], $options[6]) !== false)) { + unset($config['cron']['item'][$key]); + } + } + } + + # install cron task + if ($on_off) { + if ($task_key) { + if (is_array($options)) { + # add new + $cron_item = array(); + $cron_item[FIELD_TASKNAME] = $task_name; + $cron_item['minute'] = $options[0]; + $cron_item['hour'] = $options[1]; + $cron_item['mday'] = $options[2]; + $cron_item['month'] = $options[3]; + $cron_item['wday'] = $options[4]; + $cron_item['who'] = $options[5]; + $cron_item['command'] = $options[6]; + + # check options + if (!$cron_item['who']) $cron_item['who'] = "nobody"; + + $config['cron']['item'][] = $cron_item; + update_log("ls_setup_cron: add cron task '{$task_name}'='{$cron_item['command']}'"); + } + } else + // log + update_log("ls_setup_cron: input prm 'task_key' not defined"); + } + + write_config("Installed cron task '$task_name' for 'lightsquid' package"); + configure_cron(); + update_log("ls_setup_cron: Apply new cron settings."); } function update_log($log) { - if (LS_GUI_DEBUG === 'on') { - $t_ls_log = ''; - if (file_exists(LS_LOG_FILE)) - $t_ls_log = file_get_contents(LS_LOG_FILE); - $t_ls_log .= "\n$log"; - file_put_contents(LS_LOG_FILE, $t_ls_log); - } + if (LS_GUI_DEBUG === 'on') { + $t_ls_log = ''; + if (file_exists(LS_LOG_FILE)) + $t_ls_log = file_get_contents(LS_LOG_FILE); + $t_ls_log .= "\n$log"; + file_put_contents(LS_LOG_FILE, $t_ls_log); + } } function refresh_now() { - $cmd = CRONTAB_LS_TEMPLATE . " today"; - update_log("refresh_now: execute command '$cmd'"); + $cmd = CRONTAB_LS_TEMPLATE . " today"; + update_log("refresh_now: execute command '$cmd'"); // create lightsquid report catalog if (!file_exists(LS_REPORTPATH)) { update_log("lightsquid_install: Create report dir " . LS_REPORTPATH); mwexec("mkdir -p " . LS_REPORTPATH); } - mwexec_bg($cmd); + mwexec_bg($cmd); } function refresh_full() { - $cmd = CRONTAB_LS_TEMPLATE; - $log_name = LS_SQUIDLOG; - update_log("refresh_full: start"); + $cmd = CRONTAB_LS_TEMPLATE; + $log_name = LS_SQUIDLOG; + update_log("refresh_full: start"); // create lightsquid report catalog if (!file_exists(LS_REPORTPATH)) { @@ -402,20 +402,20 @@ function refresh_full() { mwexec("mkdir -p " . LS_REPORTPATH); } - // parse access.log - update_log("refresh_full: execute command '$cmd'"); - mwexec_bg("$cmd $log_name"); - // parse access.log.x - for ($i=0; $i<100; $i++) { - $lg = LS_SQUIDLOG . ".$i"; - if (file_exists(LS_SQUIDLOGPATH . "/$lg")) { - update_log("refresh_full: execute command '$cmd $lg'"); - mwexec_bg("$cmd $lg"); - } else - // really go <= 10 cycles - break; - } - update_log("refresh_full: stop"); + // parse access.log + update_log("refresh_full: execute command '$cmd'"); + mwexec_bg("$cmd $log_name"); + // parse access.log.x + for ($i=0; $i<100; $i++) { + $lg = LS_SQUIDLOG . ".$i"; + if (file_exists(LS_SQUIDLOGPATH . "/$lg")) { + update_log("refresh_full: execute command '$cmd $lg'"); + mwexec_bg("$cmd $lg"); + } else + // really go <= 10 cycles + break; + } + update_log("refresh_full: stop"); } ?>
\ No newline at end of file |