- 浏览: 834885 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xieye:
jetty插件有好几个版本,1.6,1.7,1.8
我选的是用 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
还有,
注:第2部分时,需要先安装jetty,我自己在安装过程 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
说明一下:实际使用中,导入时我并没有错误。2、我把eclips ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
其实还是有一些先决条件的。1是外部环境,2是进步是阶段性的(意 ...
(转载文章)如何愉悦起来:一位精神治疗师的见解 -
mandy_yanzi:
我都已经饿7天了坚持为了我的衣衣
身体健康的问题
任务:过滤出2010-08-18的apache访问日志,并放到本地数据库。
解决方案:写两个php文件解决这个问题
假定linux系统
假定全utf-8
假定php已经放在$PATH里
假如有这么一个日志/site/data/log/access_log_20100818,内容示例如下:
当然很大,几百M。
shell_filter.php文件内容如下:
文件save_echo.php内容如下:
最后
进入两个php文件所在目录,
cat /site/data/log/access_log_20100812 | php shell_filter.php 2010-08-18|php save_echo.php
解释:
cat输出日志文件内容,有缓冲,机器自动处理
管道至 shell_filter.php文件的输入
shell_filter.php文件截取出2010-08-18的记录并输出,如果愿意,可以改参数为任意日期,就截取那个日期的记录
管道至 save_echo.php文件的输入
save_echo.php文件保存记录到数据库,并有控制台输出提示。
解决方案:写两个php文件解决这个问题
假定linux系统
假定全utf-8
假定php已经放在$PATH里
假如有这么一个日志/site/data/log/access_log_20100818,内容示例如下:
[120.42.16.230] [-] [-] [2010-08-17 08:36:41] [GET] [www.site.com] [/membercenter/ordinary/score] [] [HTTP/1.1] [200] [2585] [-] [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 618; GTB6.5; 360SE)] [121.229.144.193] [-] [-] [2010-08-17 08:36:41] [GET] [www.site.com] [/bbs/jiehunzhenhao/wosikainv_49602.html] [] [HTTP/1.1] [200] [12631] [http://www.site.com/bbs/forum/jiehunzhenhao/filter/0/orderby/2/ascdesc/desc/page/4] [Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8] [121.229.144.193] [-] [-] [2010-08-17 08:36:41] [POST] [www.site.com] [/bbsmanage/moderatorsetajax] [] [HTTP/1.1] [200] [21] [http://www.site.com/bbsmanage/moderatorset?id=4650] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; 360SE)] [60.190.125.3] [-] [-] [2010-08-17 08:36:41] [GET] [www.site.com] [/bbs/fangchanzatan/jiangjiatong_49458.html] [] [HTTP/1.1] [200] [10435] [http://www.site.com/membercenter/ordinary/bbssend?page=6] [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X)] [118.120.207.138] [-] [-] [2010-08-17 08:36:41] [GET] [www.site.com] [/bbs/jingcaitietu/tianshangrenjian_51533.html] [] [HTTP/1.1] [200] [13418] [http://www.site.com/bbs/forum/jingcaitietu/] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 627; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)] [121.229.144.193] [-] [-] [2010-08-18 08:36:41] [GET] [www.site.com] [/bbsmanage/setmoderator] [] [HTTP/1.1] [200] [451] [http://www.site.com/mange/magframe] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; 360SE)] [121.229.144.193] [-] [-] [2010-08-18 08:36:42] [POST] [www.site.com] [/bbsmanage/moderatorxml] [] [HTTP/1.1] [200] [3699] [http://www.site.com/bbsmanage/setmoderator] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; 360SE)] [60.211.96.212] [-] [-] [2010-08-18 08:36:42] [GET] [www.site.com] [/member/index/id/7651] [] [HTTP/1.1] [200] [5308] [http://www.site.com/membercenter/ordinary/friend] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SE 2.X; .NET CLR 2.0.50727; .NET CLR 4.0.20506)] [113.205.59.70] [-] [-] [2010-08-18 08:36:43] [POST] [www.site.com] [/register/checkcaptcha] [] [HTTP/1.1] [200] [21] [http://www.site.com/register/ordinary/member_id/8326] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648)] [123.4.197.242] [-] [-] [2010-08-18 08:36:43] [GET] [www.site.com] [/bbsoperate/tuijian] [?act=tuijian&id=33936] [HTTP/1.1] [200] [4448] [-] [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CNCDialer)] 。。。。。 。。。。。
当然很大,几百M。
shell_filter.php文件内容如下:
#!/usr/local/php/bin/php <?php include 'CommandPublic.php'; //这是公共文件 $handle = fopen("php://stdin", "r"); //这里获得命令行参数 if (count($argv) > 1 ) $date = $argv[1]; else $date = '2010-01-01'; //迭代 $j =0; while (!feof($handle)) { $buffer = fgets($handle); process($buffer); } //关闭输入流,并结束 fclose($handle); //筛选处理 function process($str){ global $j; global $date; $str = strval($str); $str = trim($str); $str = preg_replace('#\n|\r\n#',"", $str); //首先要确保符合日志格式 if (preg_match('#\[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\] \[.*?\]#', $str)) { if (!preg_match('#::1#', $str)) { //这是无用的记录 if (preg_match('#'. $date .'#', $str)) { //关键点,匹配 $j++; echo $str . "\n"; //这里通过管道输出到下一个文件 } } } } ?>
文件save_echo.php内容如下:
#!/usr/local/php/bin/php <?php include 'CommandPublic.php'; $db = Sys::getdb2(); $handle = fopen("php://stdin", "r"); $i=0; while (!feof($handle)) { $i++; $buffer = fgets($handle); process($buffer,$i); } fclose($handle); //筛选处理 function process($str,$i=0){ global $db; //正则截取出各字段内容 $ip = preg_replace('#^\[(.*?)\] \[.*?\] \[.*?\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[.*?\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\]$#', '$1|$2|$3|$4|$5|$6|$7|$8|$9|$10', $str); $arr = explode('|', $ip); $engine_name=''; $result = array( 'ip'=> $arr[0], 'access_time' => $arr[1], 'get_post'=> $arr[2], 'httphost' => $arr[3], 'url'=> $arr[4], 'http_type' => $arr[5], 'code'=> $arr[6], 'length' => $arr[7], 'source'=> $arr[8], 'agent' => substr( $arr[9],0, 250), 'engine_name' => $engine_name, ); $db->insert('table1', $result); //这里只是输出到控制台给人看 echo $i .': ' .$arr[1].' '. $arr[0] . "\n"; } ?>
最后
进入两个php文件所在目录,
cat /site/data/log/access_log_20100812 | php shell_filter.php 2010-08-18|php save_echo.php
解释:
cat输出日志文件内容,有缓冲,机器自动处理
管道至 shell_filter.php文件的输入
shell_filter.php文件截取出2010-08-18的记录并输出,如果愿意,可以改参数为任意日期,就截取那个日期的记录
管道至 save_echo.php文件的输入
save_echo.php文件保存记录到数据库,并有控制台输出提示。
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 709本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos安装denyhost
2020-11-21 14:29 510安装denyhost 下面这个不知是否是官网。 https: ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 853centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 1256本文只考虑centos7 今日 2020-11-16 rem ... -
rabbitmq的终端管理命令rabbitmqadmin
2020-11-13 17:03 939启动rabbitmq systemctl start rab ... -
centos 安装 RabbitMQ
2020-11-11 14:40 518安装 erlang语言环境。 千万不要直接 yum inst ... -
composer常用命令
2020-11-05 14:46 1481列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 521期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 1130ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
centos的证书配置
2020-06-09 20:32 1023用百度云,发现对其他https 的 网站访问时有时无。 排查 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 821一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
git常用命令
2020-02-03 15:27 393git常用命令 删除本地分支。 git branch -d ... -
shadowsocks 故障解决
2020-02-01 12:06 4851今天突然发现shadowsocks无法使用。 解决方案:修改服 ... -
将代码部署到coding.net
2020-01-10 14:20 648coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 911deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 650假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 921php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 966php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 673根据文档与实测结果 假设我在app下建一个Services目 ...
相关推荐
Shell脚本类似于JavaScript和PHP,只需要文本编辑器编写代码,并通过脚本解释器执行。 Linux系统中有多种Shell,例如Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash,最常用)、C Shell(/...
在Linux运维领域,Shell脚本语言扮演着至关重要的角色,因为它是实现系统管理和自动化运维的关键工具。无论是系统底层的功能,还是各种应用软件,其核心往往涉及到Shell脚本。因此,对于任何想要成为合格的Linux系统...
bash shell脚本充当Fritz!Box客户端这是一组简单的脚本,可以帮助我与自己的Fritz!Box进行交流。 如果它们对他人有用:太好了! 何时不行:还有更多其他语言的精美客户,例如: PHP(最后更新2013-11): : C ++...
1. **PHP编程**:PHP是一种广泛使用的开源脚本语言,主要用于Web开发,可以嵌入到HTML中。它允许开发者创建动态内容,处理服务器端数据,并提供与其他数据库交互的能力。 2. **SOCKS代理**:SOCKS是一种网络协议,...
去做[]配置ELK堆栈以使用新的目录布局[]添加更好的Phing支持用法注意-如果这是您第一次使用Docker,建议您阅读的语法说明,但是docker-compose.yml和docker-compose.yml docker-compose-developer-php7.yml文件中也...
- 配置灵活,支持自定义shell脚本和分布式监控。 - 冗余监控和多样化的报警机制。 - 更简单的命令重新配置,无需Nagios运行。 - 提供API接口,支持脚本调用和远程执行命令。 - 内置日志监控和图形生成功能。 然而,...
coddns 系统是一个 HTML-PHP-DB 控制台,通过脚本与 Bind9 一起工作,以在通过控制台注册的主机上提供动态 DNS 解析。 它有两种工作模式: WAN 模式:这是默认的工作模式,coddns 将充当每个注册主机的解析器。 在您...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...
jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...