function ParseSubDir($dir) { $unix = new unix(); $q = new mysql_squid_builder(); $countDefile = $unix->COUNT_FILES($dir); events("{$dir} -> {$countDefile} files on Line: ", __LINE__); if ($countDefile == 0) { events("ParseSubDir():: {$dir}: no files... remove... ", __LINE__); @rmdir($dir); return; } $FINAL = array(); if (!($handle = opendir($dir))) { events("ParseSubDir():: Fatal: {$dir} no such directory", __LINE__); return; } $DUSTBIN["mx.yahoo.com"] = true; $DUSTBIN["row.bc.yahoo.com"] = true; $DUSTBIN["us.bc.yahoo.com"] = true; $DUSTBIN["xiti.com"] = true; $c = 0; while (false !== ($filename = readdir($handle))) { if ($filename == ".") { continue; } if ($filename == "..") { continue; } $targetFile = "{$dir}/{$filename}"; $arrayFile = unserialize(@file_get_contents($targetFile)); if (!is_array($arrayFile)) { @unlink($targetFile); continue; } if ($GLOBALS["VERBOSE"]) { echo "{$targetFile}\n"; } while (list($index, $array) = each($arrayFile)) { $words = mysql_escape_string2(trim($array["WORDS"])); if ($words == null) { continue; } $sitename = $array["SITENAME"]; $familysite = $q->GetFamilySites($sitename); if (isset($DUSTBIN[$sitename])) { continue; } if (isset($DUSTBIN[$familysite])) { continue; } $ipaddr = $array["ipaddr"]; $zDate = $array["date"]; $uid = mysql_escape_string2($array["uid"]); $MAC = mysql_escape_string2($array["mac"]); $hostname = mysql_escape_string2($array["hostname"]); $time = strtotime($zDate); $prefix = date("YmdH", $time); $zmd5 = md5(serialize($array)); $account = 0; $line = "('{$zmd5}','{$sitename}','{$zDate}','{$ipaddr}','{$hostname}','{$uid}','{$MAC}','{$account}','{$familysite}','{$words}')"; if ($GLOBALS["VERBOSE"]) { echo "{$prefix} -> {$line}\n"; } $f[$prefix][] = $line; } @unlink($targetFile); } if (count($f) > 0) { inject_array($f); } }
function ParseSquidLogMainError() { if (!is_dir("/var/log/artica-postfix/dansguardian-stats2-errors")) { return; } if (!($handle = opendir("/var/log/artica-postfix/dansguardian-stats2-errors"))) { return; } $unix = new unix(); $c = 0; while (false !== ($filename = readdir($handle))) { if ($filename == ".") { continue; } if ($filename == "..") { continue; } $c++; $targetFile = "/var/log/artica-postfix/dansguardian-stats2-errors/{$filename}"; $minutes = $unix->file_time_min($targetFile); events("ParseSquidLogMainError():: {$filename} {$minutes}Mn"); if ($minutes > 2880) { @unlink($targetFile); continue; } $array["TABLES"] = unserialize(@file_get_contents($targetFile)); @unlink($targetFile); echo "Inject file {$targetFile}\n"; events("Inject file {$targetFile} on Line: " . __LINE__); inject_array($array["TABLES"]); unset($array["TABLES"]); } events("ParseSquidLogMainError():: Done... ({$c} files)"); }
function PURGE_GLOBAL_QUEUE($QUEUE) { if (count($QUEUE) == 0) { return; } while (list($index, $FINAL_ARRAY) = each($QUEUE)) { $NewArray = $GLOBALS["squidtail"]->ArrayToMysql($FINAL_ARRAY); if (!is_array($NewArray)) { events("Failed Index({$index}), not an array... Load:{$GLOBALS["SYSTEM_INTERNAL_LOAD"]}: on Line: " . __LINE__); continue; } $array["TABLES"][$NewArray[0]][] = $NewArray[1]; } if (count($array["TABLES"]) > 0) { events("Injecting " . count($array["TABLES"]) . " lines Load:{$GLOBALS["SYSTEM_INTERNAL_LOAD"]}: on Line: " . __LINE__); inject_array($array["TABLES"]); } }