process_all_client_guid("{$path}/gas"); process_all_client_common("{$path}/gac", $network_flag); $qs = "update tbl_client_log_common set happened_time = now() where happened_time > now()"; mysql_query($qs); mysql_close(); } if (count($argv) < 6) { $usage = <<<_usage_str usage: php MainFunc.php path_name db_host db_user db_pass db_name 需要path_name的目录结构 \tpath_name \t|-----gas \t|------|----gas******.comm.log \t|------|----gas******.info.log \t|-----gac \t|------|----gac******.comm.log \t|------|----gac******.info.log _usage_str; echo $usage; } else { $path = $argv[1]; $db_host = $argv[2]; $db_user = $argv[3]; $db_pass = $argv[4]; $db_name = $argv[5]; MainFunc($path, $db_host, $db_user, $db_pass, $db_name); }
$dbinfo = $tbl_serv_db[$server_id]; $Conn = mysql_connect($dbinfo[2], $dbinfo[0], $dbinfo[1]); mysql_select_db($dbinfo[3], $Conn); $camp = array(0, 0, 0); $qs = "select cs.cs_uCamp, count(*) c from tbl_char c, tbl_char_static cs where c.cs_uId = cs.cs_uId group by cs.cs_uCamp"; $rs = mysql_query($qs); while ($row = mysql_fetch_row($rs)) { $camp[intval($row[0]) - 1] = $row[1]; } $dbinfo = $tbl_gm_db[0]; $Conn = mysql_connect($dbinfo[2], $dbinfo[0], $dbinfo[1]); mysql_select_db($dbinfo[3], $Conn); $qs = "insert into tbl_rush_role_log values(now()," . $server_id . "," . implode(",", $camp) . ")"; mysql_query($qs); } function MainFunc() { echo date("Y-M-d H:i:s") . "=====================\n"; global $tbl_gm_db; $dbinfo = $tbl_gm_db[0]; $Conn = mysql_connect($dbinfo[2], $dbinfo[0], $dbinfo[1]); mysql_select_db($dbinfo[3], $Conn); $qs = "select rrs_uServerId from tbl_rush_role_servers"; $rs = mysql_query($qs); while ($row = mysql_fetch_row($rs)) { Load($row[0]); } mysql_close($Conn); } MainFunc();
mysql_select_db($db_name, $Conn); $qs = "select count(distinct client_guid) from tbl_client_log_common"; $result = mysql_query($qs); $row = mysql_fetch_row($result); $cc = $row[0]; $power1 = intval($cc * 0.04); $qs = "create view view_client_error_type as select error_code, client_guid, count(*) as num from tbl_client_log_common group by error_code, client_guid"; mysql_query($qs); $qs = "create view view_client_error_num as select count(distinct error_code) as ct, client_guid from view_client_error_type group by client_guid"; mysql_query($qs); $qs = "select sum(ct) as ct, count(distinct client_guid) as cc from view_client_error_num"; $result = mysql_query($qs); $row = mysql_fetch_row($result); $ct = $row[0]; $cc = $row[1]; $power2 = intval($ct / $cc * 2); $qs = "create view view_error_client as select error_code, count(client_guid) as count_client, sum(num) as s from view_client_error_type group by error_code"; mysql_query($qs); $qs = "create view view_special_error as select error_code from view_error_client where count_client < '{$power1}'"; mysql_query($qs); $qs = "create view view_guid_info as select distinct client_guid from view_client_error_type v1, view_special_error v2 where v1.error_code = v2.error_code"; mysql_query($qs); $qs = "create view view_special_guid as select v1.client_guid, count(distinct error_code) as count_error from view_guid_info v1, view_client_error_type v2 where v1.client_guid = v2.client_guid group by v2.client_guid"; mysql_query($qs); $qs = "update tbl_guid_info, view_special_guid set tbl_guid_info.is_special_client = 1 where tbl_guid_info.guid = view_special_guid.client_guid and count_error > '{$power2}'"; mysql_query($qs); $qs = "drop view view_client_error_type, view_error_client, view_special_error, view_special_guid, view_guid_info, view_client_error_num"; mysql_query($qs); } MainFunc("LogFree");
while (count($files) > 0) { foreach (glob("{$path}/*.log") as $filename) { foreach (glob("{$path}/tbl_log_event*.txt") as $filename) { LoadId($filename, $ServID); } LoadLog($filename, $ServID); } $files = glob("{$path}/*.log"); } } if (count($argv) < 3) { $usage = <<<_usage_str usage: php load_log.php path_to_fold server_id _usage_str; echo $usage; } else { if ($lock = fopen($path . "/lock.lock", "w")) { flock($lock, LOCK_EX); $path = $argv[1]; $ServID = $argv[2]; mysql_connect("127.0.0.1", "root", "1"); mysql_select_db("ybtx_game_log"); set_time_limit(0); MainFunc($path, $ServID); mysql_close(); flock($lock, LOCK_UN); fclose($lock); } }