function sig_handler($signo)
{
    global $log_path;
    global $my_log;
    global $my_name;
    global $log_tag;
    global $my_tag;
    global $my_pidfile;
    global $pid;
    global $rm;
    // release resource such as db connection
    $my_log = $log_path . '/' . $my_name . '.' . date("Ymd") . '.log';
    $msg = 'recv signal ' . $signo . '. exit now. pid=' . $pid;
    echo date("Ymd H:i:s") . ': ' . $my_tag . ': ' . $msg . "\n";
    phplog($my_log, $log_tag, $msg);
    exec("{$rm} -rf {$my_pidfile} 2>/dev/null");
    exit;
}
function restart()
{
    global $ps;
    global $awk;
    global $xargs;
    global $kill;
    global $php;
    global $rm;
    global $grep;
    global $bin_path;
    global $log_path;
    global $target_name;
    global $target_program;
    global $target_pidfile;
    global $target_alivefile;
    global $my_log;
    global $log_tag;
    $exec_ret_arr = array();
    $cmd = $ps . ' -elf | ' . $grep . ' ' . $target_program . ' | ' . $grep . ' -v grep | ' . $grep . ' -v daemon.php | ' . $awk . " '{print \$4}' | " . $xargs . " -I {} " . $kill . ' -term {}';
    exec($cmd, $exec_ret_arr);
    echo date("Ymd H:i:s") . ': ' . $cmd . "\n";
    print_r($exec_ret_arr);
    phplog($my_log, $log_tag, $cmd);
    $cmd = $rm . " -rf {$target_pidfile} 2>/dev/null";
    exec($cmd, $exec_ret_arr);
    echo date("Ymd H:i:s") . ': ' . $cmd . "\n";
    print_r($exec_ret_arr);
    phplog($my_log, $log_tag, $cmd);
    $cmd = $rm . " -rf {$target_alivefile} 2>/dev/null";
    exec($cmd, $exec_ret_arr);
    echo date("Ymd H:i:s") . ': ' . $cmd . "\n";
    print_r($exec_ret_arr);
    phplog($my_log, $log_tag, $cmd);
    sleep(1);
    // restart.
    $cmd = $php . " -q {$bin_path}/{$target_program}.php {$target_name} >> {$log_path}/{$target_name}.{$target_program}.php.log 2>&1 &";
    exec($cmd, $exec_ret_arr);
    echo date("Ymd H:i:s") . ': ' . $cmd . "\n";
    print_r($exec_ret_arr);
    phplog($my_log, $log_tag, $cmd);
}
Пример #3
0
<?php

include 'db_config.php';
phplog('test log');
//phpinfo();
Пример #4
0
$mysql_connect = mysql_connect($db_ip, $db_user, $db_pw);
if (!$mysql_connect) {
    //die('Could not connect: ' . mysql_error());
    //error_log("db connect failed" ."\r\n", 3, "/nfsroot/html_onefigure/debug.info");
    phplog("db connect failed");
    exit;
}
mysql_select_db("pay_verify_db", $mysql_connect);
$sql = "INSERT INTO op_anzhi_notify (PAY_AMOUNT, UID, NOTIFY_TIME, CP_INFO, ORDER_AMOUNT, ORDER_ACCOUNT, CODE, ORDER_TIME, MSG, ORDER_ID)\nVALUES\n('{$orderAmount}', '{$uid}', '{$notifyTime}', '{$cpInfo}', '{$orderAmount}', '{$orderAccount}', '{$code}', '{$orderTime}', '{$memo}', '{$orderId}')";
if (!mysql_query($sql, $mysql_connect)) {
    //die('Error: ' . mysql_error());
    //error_log("db query failed" ."\r\n", 3, "/nfsroot/html_onefigure/debug.info");
    phplog("db query failed 1");
    exit;
}
// update op_order_info
$cpInfo = intval($cpInfo);
$sql = "UPDATE op_order_info SET VERIFY_STATE='SUCCESS', TRANSACTION_ID='{$uid}' WHERE ORDER_ID='{$cpInfo}'";
if (!mysql_query($sql)) {
    //die('Error: ' . mysql_error());
    //error_log("db query failed" ."\r\n", 3, "/nfsroot/html_onefigure/debug.info");
    phplog("db query failed 2");
    exit;
}
mysql_close($mysql_connect);
echo "success";
?>



function parse_log($info_posfile, $pos, $info_log, $my_log)
{
    return;
    global $log_tag;
    global $my_tag;
    global $rd_lines_each_time;
    global $msg_type_info;
    global $msg_type_err;
    global $conn;
    $fd = fopen($info_log, 'r');
    if (!$fd) {
        $msg = "{$info_log} can not read";
        echo date("Ymd H:i:s") . ': ' . $my_tag . ': ' . $msg . "\n";
        phplog($my_log, $log_tag, $msg);
        return;
    } else {
        fseek($fd, $pos);
    }
    // connect to db by ODBC.
    // $conn = db_connect();
    $rd_cnt = 0;
    while ($data = fgets($fd, 2048)) {
        $parse_ok = true;
        $data = chop(urldecode($data));
        if (substr($data, 0, 1) !== "[" or substr($data, 9, 1) !== "]") {
            echo date("Ymd H:i:s") . ': ' . $my_tag . ": log fmt error: {$data}\n";
            $rd_cnt++;
            continue;
        }
        $data = addslashes($data);
        parse_str($data, $log_arr);
        if ($log_arr['type'] == $msg_type_err) {
            send_sms('error: ', '15801564398');
        }
        $timetmp1 = explode('[', $logarr[0]);
        $timetmp2 = explode(']', $timetmp1[1]);
        $logtimestr = date("Y-m-d") . " {$timetmp2['0']}";
        $logsec = strtotime("2012-02-08 10:00:00");
        $gatewaytmp = explode(' ', $logarr[0]);
        $gateway = $gatewaytmp[1];
        //分析日志,日志各个字段分隔符为","  短信内容中可能会有逗号
        $count = count($logarr) . "\n";
        $content = "";
        if ($count == 9) {
            $content = $logarr[$count - 2];
            $linkid = $logarr[$count - 1];
        } else {
            $linkid = $logarr[$count - 1];
            for ($j = 7; $j < $count - 1; $j++) {
                $content .= $logarr[$j];
            }
        }
        if (substr($content, 0, 4) == "0500") {
            $len = strlen($content) - 12;
            $tmpcontent = pack("H{$len}", substr($content, 12));
            $content = substr($content, 0, 12) . $tmpcontent;
        }
        //获取tablename
        echo "tablename {$tablename}\n";
        $premobile = substr($logarr[4], 0, 7);
        $mobile_reg = $Hregion[$premobile];
        $mobile_city = $Hcity[$premobile];
        echo "{$Hregion}\n";
        $sql = "insert into {$tablename} (msgtime,gateway,mobile,region,city,longnum,msgfeecode,msglength,msg,linkid) values ('{$timetmp2['0']}','{$gateway}','{$logarr['4']}','{$mobile_reg}','{$mobile_city}','{$logarr['2']}','{$logarr['3']}','{$logarr['6']}','{$content}','{$linkid}')";
        echo $sql . "\n";
        $result = mysql_query($sql);
        if (0 != mysql_errno()) {
            //mysql 1146错误,表示没这个表,建立之
            if (mysql_errno() == 1146) {
                trans_w_log('/data0/apache/gateway/withdb/logdb3/insertDB_mo.log', "create table {$tablename}\n");
                $sql = "CREATE TABLE `{$tablename}` (\n\t\t\t\t\t`id` int(9) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t\t\t`msgtime` time NOT NULL DEFAULT '00:00:00',\n\t\t\t\t\t`gateway` varchar(6) NOT NULL ,\n\t\t\t\t\t`mobile` varchar(32) NOT NULL,\n\t\t\t\t\t`region` varchar(6) NOT NULL,\n\t\t\t\t\t`city` varchar(6) NOT NULL,\n\t\t\t\t\t`longnum` varchar(32) NOT NULL,\n\t\t\t\t\t`msgfeecode` varchar(21) NOT NULL DEFAULT '',\n\t\t\t\t\t`msglength` varchar(4) DEFAULT NULL,\n\t\t\t\t\t`msg` text,\n\t\t\t\t\t`linkid` varchar(255) DEFAULT NULL,\n\t\t\t\t\tPRIMARY KEY (`id`),\n\t\t\t\t\tKEY `mobile` (`mobile`),\n\t\t\t\t\tKEY `linkid` (`linkid`),\n\t\t\t\t\tKEY `region` (`region`),\n\t\t\t\t\tKEY `city` (`city`),\n\t\t\t\t\tKEY `longnum` (`longnum`),\n\t\t\t\t\tKEY `gateway` (`gateway`)\n\t\t\t\t\t)";
                mysql_query($sql);
                continue;
            } else {
                //数据库访问错误,直接退出本函数
                $parse_ok = false;
                break;
            }
        }
        $rd_cnt++;
        if ($rd_cnt > $rd_lines_each_time) {
            break;
        }
    }
    //mysql_close($conn);
    if ($parse_ok) {
        $parse_to_line = ftell($fd);
        fclose($fd);
        $cmd = $echo . " '{$parse_to_line}' > {$info_posfile} 2>/dev/null";
        exec($cmd);
    } else {
        // do nothing. return to main for re-try.
    }
}