function items_save() { $_POST = mysql_escape_line_query($_POST); $cache_directory = $_POST["cache_directory"]; $cache_type = $_POST["cache_type"]; $size = $_POST["size"]; $cache_dir_level1 = $_POST["cache_dir_level1"]; $cache_dir_level2 = $_POST["cache_dir_level2"]; $CPU = $_POST["CPU"]; $cachename = $_POST["cachename"]; $enabled = $_POST["enabled"]; $min_size = $_POST["min_size"]; $max_size = $_POST["max_size"]; $ID = $_POST["ID"]; if ($cache_type == "rock") { $CPU = 0; } $q = new mysql(); if (!$q->FIELD_EXISTS("squid_caches_center", "min_size", "artica_backup")) { $sql = "ALTER TABLE `squid_caches_center` ADD `min_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__); } } if (!$q->FIELD_EXISTS("squid_caches_center", "wizard", "artica_backup")) { $sql = "ALTER TABLE `squid_caches_center` ADD `wizard` smallint NOT NULL DEFAULT 0"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__); } } if (!$q->FIELD_EXISTS("squid_caches_center", "max_size", "artica_backup")) { $sql = "ALTER TABLE `squid_caches_center` ADD `max_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error . "\n{$sql}"; writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__); } } if ($cache_type == "tmpfs") { $users = new usersMenus(); $memMB = $users->MEM_TOTAL_INSTALLEE / 1024; $memMB = $memMB - 1500; if ($size > $memMB) { $size = $memMB - 100; } } if ($ID == 0) { $q->QUERY_SQL("INSERT IGNORE INTO squid_caches_center \n\t\t(cachename,cpu,cache_dir,cache_type,cache_size,cache_dir_level1,cache_dir_level2,enabled,percentcache,usedcache,zOrder,min_size,max_size)\n\t\tVALUES('{$cachename}',{$CPU},'{$cache_directory}','{$cache_type}','{$size}','{$cache_dir_level1}','{$cache_dir_level2}',{$enabled},0,0,1,{$min_size},{$max_size})", "artica_backup"); } else { $q->QUERY_SQL("UPDATE squid_caches_center SET \n\t\t\tcachename='{$cachename}',\n\t\t\tcpu={$CPU},\n\t\t\tcache_size='{$size}',\n\t\t\tmin_size='{$min_size}',\n\t\t\tmax_size='{$max_size}',\n\t\t\tenabled={$enabled}\n\t\t\tWHERE ID={$ID}", "artica_backup"); } if (!$q->ok) { echo $q->mysql_error; } }
function visited_websites_by_day_perform($tableSource, $tableDest) { $unix = new unix(); $sql = "SELECT SUM(size) as tsize,SUM(hits) as thits, sitename,familysite FROM {$tableSource} GROUP BY sitename,familysite"; $t = time(); events("visited_websites_by_day_perform()::{$tableSource} {$sql}"); $results = $GLOBALS["Q"]->QUERY_SQL($sql); events("visited_websites_by_day_perform()::{$tableSource} " . $unix->distanceOfTimeInWords($t, time(), true)); if (!$GLOBALS["Q"]->ok) { ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats"); return; } $prefix = "INSERT IGNORE INTO {$tableDest} (sitename,familysite,size,hits) VALUES "; $countWorks = mysql_num_rows($results); if ($countWorks == 0) { return true; } $f = array(); $c = 0; while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $ligne = mysql_escape_line_query($ligne, true); $f[] = "('{$ligne["sitename"]}','{$ligne["familysite"]}','{$ligne["tsize"]}','{$ligne["thits"]}')"; $c++; if (count($f) > 1000) { events("visited_websites_by_day_perform()::{$tableSource} 1000/{$c} rows " . $unix->distanceOfTimeInWords($t, time(), true)); $GLOBALS["Q"]->QUERY_SQL($prefix . @implode(",", $f)); if (!$GLOBALS["Q"]->ok) { ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats"); return; } $f = array(); if (SquidStatisticsTasksOverTime()) { stats_admin_events(1, "Statistics overtime... Aborting", null, __FILE__, __LINE__); return; } } } if (count($f) > 0) { $GLOBALS["Q"]->QUERY_SQL($prefix . @implode(",", $f)); if (!$GLOBALS["Q"]->ok) { ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats"); return; } $f = array(); } ufdbguard_admin_events("Success filling {$tableDest} with {$countWorks} entries", __FUNCTION__, __FILE__, __LINE__, "stats"); return true; }
function perform($tablesource, $nexttable, $MONTH) { $q = new mysql_squid_builder(); if (!$q->CreateYearTable($nexttable)) { if ($GLOBALS["VERBOSE"]) { echo "{$nexttable}, failed\n"; } return false; } $q->QUERY_SQL("TRUNCATE TABLE `{$nexttable}`"); $q->QUERY_SQL("UPDATE `{$tablesource}` SET MAC='' WHERE MAC='00:00:00:00:00:00'"); ini_set('memory_limit', '750M'); $sql = "SELECT SUM(size) as size,SUM(hits) as hits,\n\tfamilysite,client,hostname,account,remote_ip\n\t,MAC,country,uid,category,cached FROM `{$tablesource}` \n\tGROUP BY familysite,client,hostname,account,remote_ip,MAC,country,uid,category,cached"; $t = time(); if ($GLOBALS["VERBOSE"]) { echo "{$nexttable} -> {$tablesource} QUERY\n"; } $results = $q->QUERY_PDO($sql); if (!$results) { return false; } $prefix = "INSERT IGNORE INTO {$nexttable} (\n\t`zMD5`,`month`,`size`,`hits`,`familysite`,`client`,`hostname`,`account`,`remote_ip`\n\t,`MAC`,`country`,`uid`,`category`,`cached`\n\t) VALUES "; $d = 0; $TOT = mysql_num_rows($results); $c = 0; $s = 0; $memory_get_usage = memory_get_usage(true); $ko = round($memory_get_usage / 1024, 2); $ko = $ko / 1024; $lastKo = $ko; if ($GLOBALS["VERBOSE"]) { echo "{$nexttable}, LOOP ON {$TOT}\n"; } foreach ($results->fetchAll(PDO::FETCH_ASSOC) as $ligne) { $zMD5 = md5(serialize($ligne)); $c++; $d++; $s++; $ligne = mysql_escape_line_query($ligne, true); $sql = "{$prefix} ('{$zMD5}','{$MONTH}','{$ligne["size"]}','{$ligne["hits"]}','{$ligne["familysite"]}','{$ligne["client"]}','{$ligne["hostname"]}','{$ligne["account"]}',\n\t\t'{$ligne["remote_ip"]}','{$ligne["MAC"]}','{$ligne["country"]}','{$ligne["uid"]}','{$ligne["category"]}','{$ligne["cached"]}')"; if ($s > 5000) { $memory_get_usage = memory_get_usage(true); $ko = round($memory_get_usage / 1024, 2); $ko = $ko / 1024; $added = $ko - $lastKo; $lastKo = $ko; if ($GLOBALS["VERBOSE"]) { echo "FRR:{$d} - " . ($TOT - $d) . " {$ko}M +{$added}M\n"; } $s = 0; } unset($ligne); } return false; }
function items_save(){ $_POST=mysql_escape_line_query($_POST); $cache_directory=$_POST["cache_directory"]; $cache_type=$_POST["cache_type"]; $size=$_POST["size"]; $cache_dir_level1=$_POST["cache_dir_level1"]; $cache_dir_level2=$_POST["cache_dir_level2"]; $CPU=$_POST["CPU"]; $cachename=$_POST["cachename"]; $enabled=$_POST["enabled"]; $min_size=$_POST["min_size"]; $max_size=$_POST["max_size"]; $ID=$_POST["ID"]; if($cache_type=="rock"){$CPU=0;} $q=new mysql(); if(!$q->FIELD_EXISTS("squid_caches_center","min_size","artica_backup")){ $sql="ALTER TABLE `squid_caches_center` ADD `min_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"; $q->QUERY_SQL($sql,"artica_backup"); if(!$q->ok){writelogs("$q->mysql_error\n$sql",__CLASS__.'/'.__FUNCTION__,__FILE__,__LINE__);} } if(!$q->FIELD_EXISTS("squid_caches_center","max_size","artica_backup")){ $sql="ALTER TABLE `squid_caches_center` ADD `max_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"; $q->QUERY_SQL($sql,"artica_backup"); if(!$q->ok){ echo $q->mysql_error."\n$sql"; writelogs("$q->mysql_error\n$sql",__CLASS__.'/'.__FUNCTION__,__FILE__,__LINE__);} } if($cache_type=="tmpfs"){ $users=new usersMenus(); $memMB=$users->MEM_TOTAL_INSTALLEE/1024; $memMB=$memMB-1500; if($size>$memMB){ $size=$memMB-100; } } if($ID==0){ $q->QUERY_SQL("INSERT IGNORE INTO squid_caches_center (cachename,cpu,cache_dir,cache_type,cache_size,cache_dir_level1,cache_dir_level2,enabled,percentcache,usedcache,zOrder,min_size,max_size) VALUES('$cachename',$CPU,'$cache_directory','$cache_type','$size','$cache_dir_level1','$cache_dir_level2',$enabled,0,0,1,$min_size,$max_size)","artica_backup"); }else{ $q->QUERY_SQL("UPDATE squid_caches_center SET cachename='$cachename', cpu=$CPU, cache_size='$size', min_size='$min_size', max_size='$max_size', enabled=$enabled WHERE ID=$ID","artica_backup"); } if(!$q->ok){echo $q->mysql_error;} }