首页 > 系统相关 >nginx日志过滤php脚本

nginx日志过滤php脚本

时间:2023-03-05 17:01:01浏览次数:45  
标签:bin log access4 nginx awk file print 日志 php


<?php
/**
* nginx日志过滤脚本
*/

$file = 'access.log';

$access1 = './access1.log';
$access2 = './access2.log';
$access3 = './access3.log';
$access4 = './access4.log';
$access5 = './access5.log';
$access_res = './access6.log';

file_exists($access_res) ? unlink ($access_res) : false;
file_exists($access1) ? unlink ($access1) : false;
file_exists($access2) ? unlink ($access2) : false;
file_exists($access3) ? unlink ($access3) : false;
file_exists($access4) ? unlink ($access4) : false;

//过滤第一个元素为'-' 的行
$command1 = '/bin/awk \'{if($1 !~ /-/) print $0}\' ' . $file . ' > ' . $access1;

//以 '+0800]'拆分行, 并输出后半部分
$command2 = '/bin/awk -F \'+0800]\' \'{print $2}\' ' . $access1 . ' > ' . $access2;

//过滤符合正则的url
$command3 = '/bin/awk -F \' \' \'{if($2 ~ /content\/[0-9]+/) print $0}\' ' . $access2 . ' > ' . $access3;

//过滤掉爬虫、搜索引擎访问记录
$command4 = '/bin/awk \'{if($0 !~ ' .
'/Googlebot|dotbot|spider|Baiduspider|python-requests|Sogou|bingbot|ToutiaoSpider|Spider|BLEXBot|MJ12bot|Yahoo|AhrefsBot|grapeshot|archive|seokicks|linkdex|SinaWeiboBot/' .
') print $0}\' ' . $access3 . ' > ' . $access4;

//过滤掉请求失败记录
$command5 = '/bin/awk \'{if($4 ~ /200/ ) print $0}\' ' . $access4 . ' > ' . $access5;


// $command = '/bin/awk -F \'[ /]\' \'{print $5,"\t",$0}\' ' . $access4 . ' > ' . $access_res;

$output = shell_exec($command1);
$output = shell_exec($command2);
$output = shell_exec($command3);
$output = shell_exec($command4);
$output = shell_exec($command5);
// $output = shell_exec($command);

//多条awk命令组合方式

// $command = '/bin/awk -F\'"\' \'{if($6 !~ /Googlebot|Baiduspider|Sogou|bingbot|Yahoo|AhrefsBot|grapeshot|archive|seokicks|linkdex|SinaWeiboBot/) print $0}\' ' . $access . '| /bin/awk \'{if($9 == 200 || $9 == 301 || $9 == 302) print $0}\' | /bin/awk \'{if($7 ~ /content\/[0-9]+/) print $1,$7}\' > ' . $access6;


标签:bin,log,access4,nginx,awk,file,print,日志,php
From: https://blog.51cto.com/sdwml/6101567

相关文章

  • IDEA 控制台日志中文乱码解决方案
    1.修改IDEA安装目录下的idea64.exe.vmoptionsIDEA快捷方式右键->属性->打开文件所有位置,找到idea的安装位置下的idea64.exe.vmoptions文件,再最后一行添加-Dfile.encodin......
  • 使用Ingress-Nginx来暴露ArgoCD Web-UI
    未安装ArgoCD参考GitOps实践之kubernetes部署Argocd1.查看ArgocdService可以看到是ClusterIP,因此不能从外部直接访问Argocd的WEB-UI#kubectlgetsvc-nargocdNAME......
  • 如何使用 journalctl 查看和分析 systemd 日志(附实例)
    本指南介绍了systemd的journalctl工具及其各种命令的基础知识。你可以使用这些命令对Linux中的桌面和服务器日志进行故障诊断。以下是如何使用journalctl查看和分......
  • 机器学习日志 手写数字识别 pytorch 神经网络
    我是链接第一次用pytorch写机器学习,不得不说是真的好用pytorch的学习可以看这里,看看基本用法就行,个人感觉主要还是要看着实践代码来学习总结了几个点:1.loss出现nan这......
  • php基本语法和数据类型、变量销毁
    1、PHP基本语法:HTML和php混合使用;一个语句以;(分号)结束;如何定义一个变量,和变量的使用;php中定义一个变量要以$符号开头:$a=34;变量的数据类型不是固定不变的,根据赋值的变化而......
  • PHPmyadmin与php的整合教程
    PHPmyadmin与php的整合教程:1、下载PHPmyadmin包2、解压PHPmyadmin包到Apache的htdocs目录下3、将PHP安装目录下的php.ini文件中的extension=php_mbstring.dll 前面分号去掉......
  • PHP与Apache整合教程
    1、安装Apache2、下载PHP包,解压到某文件夹。注意:PHP包不需安装,解压即可,注意Windows下安装的PHP包内部一定包含php5apache2_4.dll文件,若没有说明下载错误,重新查找下载。3、PH......
  • php脚本守护进程设计
    思路:while循环,若当前没有数据要操作可以休眠;crontab脚本每隔固定时间段执行该脚本,执行时先检测是否已在执行,若无执行,有则跳过。nohup后台执行flock-xn加锁2>&1表......
  • php 检测mysql表是否存在
    pdo:<?php$dsn='mysql:dbname=test;host=127.0.0.1';$user='root';$password='';try{$pdo=newPDO($dsn,$user,$password);}catch(PDOException$e){......
  • php curl 批量请求
    实例:<?php$ch=array();$res=array();$conn=array();$urls=array('baidu'=>"http://www.baidu.com/",'cheyun'=>"http://auto.jrj.com.cn/",'w3c'=......