博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Perl多进程处理Web日志
阅读量:4984 次
发布时间:2019-06-12

本文共 1810 字,大约阅读时间需要 6 分钟。

不多说了,这个脚本是我刚学得时候写的。。

#!/usr/bin/perluse Getopt::Std;use vars qw( $opt_t $opt_l $opt_n $opt_p);use Parallel::ForkManager;print "-----------------------------------------\n";print "|                                       |\n";print "|      Poject  of   Log-grep            |\n";print "|                                       |\n";print "|    help: log-grep.pl -t 线程          |\n";print "|          -l 行数 -n 名称 -p 路径      |\n";print "-----------------------------------------\n";getopts('t:l:n:p:');#把文件切割N份同步执行。system "split -l $opt_l $opt_p $opt_n";my $pm=new Parallel::ForkManager($opt_t);my $dir=".";my $file;my @dir;opendir (DIR,$dir) or die "Can't open the directory!";$i=0;@dir=readdir DIR;foreach $file (@dir){  if($file=~/$opt_n/){     $i++;     $pm->start and next;     print "创建第$i个线程\n";     open IN,'<',$file;  while(
){ @oldlist=split(/\s/); $Date=$oldlist[3]; #把特殊符号去掉 $Date=~s/\[//; #切割日期 @home_date=split(/:/,$Date); #home_date[0] 就是准确的年月日 #time就是小时/分钟/秒 $time="$home_date[1]:$home_date[2]:$home_date[3]"; #获取访问动作 $Option=$oldlist[5]; #对特殊符号进行替换 $Option=~s/"//; #获取访问协议 $Agree=$oldlist[7]; #对特殊符号进行替换 $Agree=~s/"//; #获取客户端访问类型 $client=$oldlist[11]; #对特殊符号进行全局替换 $client=~s/"//g; push(@check,$oldlist[0]); push(@check,$home_date[0]); push(@check,$time); push(@check,$Option); push(@check,$oldlist[6]); push(@check,$Agree); push(@check,$oldlist[8]); push(@check,$client); open OUT,'>>','./out.text'; print OUT "IP地址:$check[0] 日期:$check[1] 时间:$check[2] 动作:$check[3] 路径:$check[4] 协议:$check[5] 响应:$check[6] 客户端:$check[7]\n"; } close OUT; close IN; $pm->finish; }}system "rm -rf $opt_n*";

 

转载于:https://www.cnblogs.com/xiaoCon/archive/2013/02/26/2934319.html

你可能感兴趣的文章
20165219 课上内容补做
查看>>
Tomcat7.0与Oracle10数据库连接池配置
查看>>
解决webpack和gulp打包js时ES6转译ES5时Object.assign()方法没转译成功的问题
查看>>
字节流与字符流的区别详解(转)
查看>>
类操作数据库
查看>>
找球号(一)
查看>>
oracle ebs 笔记
查看>>
Android studio使用git-android学习之旅(79)
查看>>
eclipse中去掉Js/javsscript报错信息
查看>>
网络中,FIFO、LRU、OPT这三种置换算法的缺页次数
查看>>
随机森林算法参数调优
查看>>
Mysql编写定时任务事件
查看>>
路由器/交换机/集线器的区别收集(转)
查看>>
今日头条面试题汇总
查看>>
hdu 1305 Immediate Decodability
查看>>
基本数据类型
查看>>
laravel 配置sql日志
查看>>
基于注意力机制的群组推荐算法
查看>>
Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...
查看>>
linux更改shell
查看>>