function FLUX_HOUR($astimeout = false) { $TimeFile = "/etc/artica-postfix/pids/exec.squid.interface-size.php.FLUX_HOUR.time"; if ($GLOBALS["VERBOSE"]) { $astimeout = false; } if ($GLOBALS["FORCE"]) { $astimeout = false; } if ($astimeout) { $unix = new unix(); if ($unix->file_time_min($TimeFile) < 5) { events("Aborting, require 5mn minimal"); return; } } @unlink($TimeFile); @file_put_contents($TimeFile, time()); $os = new os_system(); $UPTIME = $os->uptime_int(); build_progress("{uptime} {$UPTIME}", 15); @file_put_contents("{$GLOBALS["BASEDIR"]}/UPTIME", $UPTIME); CACHES_AVG(); $now = strtotime("-24 hour"); $MAIN = array(); $xdata = array(); $ydata = array(); $MAIN = array(); $xdata = array(); $ydata = array(); $influx = new influx(); $sock = new sockets(); echo "# # # # # # # # # # # # # # # # # # # # #\n"; echo "# # # # # # # # FLUX_HOUR # # # # # # # #\n"; echo "# # # # # # # # # # # # # # # # # # # # #\n"; $q = new mysql_squid_builder(); $q2 = new postgres_sql(); if (!$q->TABLE_EXISTS("dashboard_size_day")) { if ($q2->TABLE_EXISTS("access_log")) { FLUX_HOUR_POSTGRES(); return; } return; } if ($q->TABLE_EXISTS("dashboard_size_day")) { build_progress("{refresh_dashboard_values} FLUX HOUR", 16); $sql = "SELECT SUM(SIZE) as SIZE,TIME FROM dashboard_size_day GROUP BY TIME ORDER BY TIME ASC"; echo "FLUX_HOUR:: MySQL ****************** {$sql} **********************\n"; $results = $q->QUERY_SQL($sql); events("{$sql} -> " . mysql_num_rows($results) . " items"); if (!$q->ok) { events($q->mysql_error); } while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $size = intval($ligne["SIZE"]) / 1024; $size = $size / 1024; $time = strtotime($ligne["TIME"]); $min = date("l H:i:00", $time); echo "FLUX_HOUR: {$min} = {$size}\n"; $xdata[] = $min; $ydata[] = $size; } build_progress("{refresh_dashboard_values} FLUX HOUR " . count($xdata) . " items", 16); $MAIN["xdata"] = $xdata; $MAIN["ydata"] = $ydata; echo "# # # FLUX_HOUR:: " . count($xdata) . " ITEMS # # #\n"; @file_put_contents("{$GLOBALS["BASEDIR"]}/FLUX_HOUR", serialize($MAIN)); if (count($xdata) < 2) { @unlink("{$GLOBALS["BASEDIR"]}/FLUX_HOUR"); FLUX_HOUR_POSTGRES(); } } // ----------------------------------------------------------------------------------------------------- if ($q->TABLE_EXISTS("dashboard_countwebsite_day")) { $sql = "SELECT FAMILYSITE, SUM(SIZE) as SIZE FROM dashboard_countwebsite_day GROUP BY FAMILYSITE ORDER BY SIZE DESC LIMIT 1"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); @unlink("{$GLOBALS["BASEDIR"]}/TOP_WEBSITE"); if ($ligne["SIZE"] > 0) { @file_put_contents("{$GLOBALS["BASEDIR"]}/TOP_WEBSITE", serialize(array($ligne["SIZE"], $ligne["FAMILYSITE"]))); } } // ----------------------------------------------------------------------------------------------------- if ($q->TABLE_EXISTS("dashboard_user_day")) { $sql = "SELECT USER, SUM(SIZE) as SIZE FROM dashboard_user_day GROUP BY USER ORDER BY SIZE DESC LIMIT 1"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); events("TOP USER: {$ligne["SIZE"]} : {$ligne["USER"]}"); @unlink("{$GLOBALS["BASEDIR"]}/TOP_USER"); if ($ligne["SIZE"] > 0) { echo "TOP USER: saving {$GLOBALS["BASEDIR"]}/TOP_USER\n"; @file_put_contents("{$GLOBALS["BASEDIR"]}/TOP_USER", serialize(array($ligne["SIZE"], $ligne["USER"]))); } } // ----------------------------------------------------------------------------------------------------- if ($q->TABLE_EXISTS("dashboard_blocked_day")) { build_progress("{refresh_dashboard_values} TOP_BLOCKED", 16); @unlink("{$GLOBALS["BASEDIR"]}/TOP_BLOCKED"); $sql = "SELECT WEBSITE, SUM(RQS) as RQS FROM dashboard_blocked_day GROUP BY WEBSITE ORDER BY RQS DESC LIMIT 1"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); events("TOP_BLOCKED: {$ligne["RQS"]} : {$ligne["WEBSITE"]}"); @unlink("{$GLOBALS["BASEDIR"]}/TOP_BLOCKED"); if ($ligne["RQS"] > 0) { @file_put_contents("{$GLOBALS["BASEDIR"]}/TOP_BLOCKED", serialize(array($ligne["RQS"], $ligne["WEBSITE"]))); } } // ----------------------------------------------------------------------------------------------------- $now = InfluxQueryFromUTC(strtotime("-24 hour")); $MAIN = array(); $xdata = array(); $ydata = array(); $influx = new influx(); $sock = new sockets(); $ipClass = new IP(); $q = new mysql_squid_builder(); @unlink("{$GLOBALS["BASEDIR"]}/MEMBERS_GRAPH"); $q = new mysql_squid_builder(); if ($q->TABLE_EXISTS("dashboard_countuser_day")) { build_progress("{refresh_dashboard_values}", 50); $sql = "SELECT COUNT(USER) AS TCOUNT,TIME FROM dashboard_user_day GROUP BY TIME ORDER BY TIME ASC"; echo "MEMBERS_GRAPH:: ****************** {$sql} **********************\n"; $results = $q->QUERY_SQL($sql); $CountDedashboard_countuser_day = mysql_num_rows($results); events("{$sql} -> {$CountDedashboard_countuser_day} items"); if (!$q->ok) { events($q->mysql_error); } while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $xdata[] = $ligne["TIME"]; $ydata[] = $ligne["TCOUNT"]; } $MAIN["xdata"] = $xdata; $MAIN["ydata"] = $ydata; if (count($ydata) > 1) { @file_put_contents("{$GLOBALS["BASEDIR"]}/MEMBERS_GRAPH", serialize($MAIN)); } } build_progress("{done} FLUX MEMBERS_GRAPH", 100); // ----------------------------------------------------------------------------------------------------- }
exit; } if ($argv[1] == "--clean") { squidhour_clean(); exit; } if ($argv[1] == "--dump-hour") { DUMP_HOUR(); exit; } if ($argv[1] == "--dump-users") { FULL_USERS_DAY(); exit; } if ($argv[1] == "--cache-avg") { CACHES_AVG(); exit; } parse(); function build_progress($text, $pourc) { $cachefile = "/usr/share/artica-postfix/ressources/logs/admin.refresh.progress"; echo "{$pourc}% {$text}\n"; $array["POURC"] = $pourc; $array["TEXT"] = $text; events("{$pourc}% {$text}"); @file_put_contents($cachefile, serialize($array)); @chmod($cachefile, 0755); } function events($text = null) {