若有进程a实时写入文件rateReport.log,想用进程b去实时监控rateReport.log并分析,可用如下php代码实现:

$shell = 'tail -f /alidata/log/nginx/access/rateReport.log 2>&1';

$handle = popen($shell, 'r');
$i = 0;
while(!feof($handle)) {
    $i++;
    $buffer = fgets($handle);
    var_dump($buffer);
    flush();
    if($i == 1000){
        echo date('Y-m-d H:i:s') . "\t" . $i . PHP_EOL;
        $i = 0;
    }
}
pclose($handle);

注意:

1、若rateReport.log文件需要每日切割,若用logrotate进行切割,要用copytruncate方式,因为日志切割时tail -f 一直监控老文件

2、守护进程用supervisor进行管理