1. #!/usr/bin/perl
  2. #取文件行数
  3. ##循环开始清空文件
  4. use POSIX;
  5. use DBI;
  6. my $dir = '/data01/applog_backup';
  7. my $file = "$ARGV[0]";
  8. my $SDATE = strftime("%Y-%m-%d",localtime());
  9. my $XDATE = strftime("%Y%m%d%H%M%S",localtime());
  10. my $mon_file = "$dir/$file";
  11. my $USER="$ARGV[1]";
  12. my $IP="$ARGV[2]";
  13. my $ENV="$ARGV[3]";
  14.  
  15. my $dbUser='DEVOPS';
  16. my $user="root";
  17. my $passwd="1234567";
  18. my $dbh = DBI->connect("dbi:mysql:database=$dbUser;host=192.168.32.161;port=3306",$user,$passwd) or die "can't connect to database ". DBI-errstr;
  19. $dbh->do("SET NAMES utf8");
  20. open FILE,">tmp.out";
  21. close FILE;
  22. open( A, "<", "count.txt" );
  23. while (<A>)
  24. {
  25. $count = $_;
  26. };
  27. print "上次记录的记录数为$count\n";
  28.  
  29. open(my $fh, '<', "$mon_file");
  30. $. = 0;
  31. while (<$fh>) {
  32. ($num=$.) if eof;
  33. };
  34. print "文件最新的记录数为$num"."\n";
  35. open( B, ">", "count.txt" );
  36. print B ("$num\n");
  37.  
  38. ###获取增量记录
  39. if ( $count && $num != $count && $num !=0 )
  40. {
  41. print "开始处理\n";
  42. open( C, "<", "$mon_file" ) || die "$!\n";
  43. while (<C>)
  44. {
  45. if ($. > "$count" )
  46. {
  47. open( D, ">>", "tmp.out" );
  48. print D ("$_");
  49. }
  50. }
  51. };
  52. close D;
  53. ##########监控关键字,以空格隔开################
  54. my @warn_arr = qw/Exception Err/;
  55. my @exp=qw/testscan HandleProxyTradeGroup/;
  56.  
  57. ##$i 是匹配的次数,$b是最后一个匹配的行HandleProxyTradeGroup
  58. foreach $a (@warn_arr)
  59. {
  60. my $i = 0;
  61. my $num = 0;
  62. my $b = 0;
  63. open( D, "<", "tmp.out" ) || die "$!\n";
  64. while (<D>)
  65. {
  66. my @err_info=();
  67. $num++;
  68. if (( $_ =~ /$a/i ) and ($_ !~ /HandleProxyTradeGroup/))
  69. {
  70. $b = $num ;
  71. print "\$b is $b\n";
  72. open( E, "<", "tmp.out" ) || die "$!\n";
  73. while (<E>) {
  74. $_ =~ s/'//g;
  75. if (($. >= "$b") and ($. <= "$b" + 5) ){push( @err_info, $_ ) };};
  76. close E;
  77. chomp @err_info;
  78.  
  79. print @err_info;
  80. print "\n";
  81. $dbh->do("INSERT INTO err_info(host_name,host_ip,v_date,info,env) values('$USER','$IP','$XDATE','@err_info','$ENV')") or die($DBI::errstr);
  82.  
  83. };
  84. };
  85. close D;
  86. };

Mojo 分析日志接口的更多相关文章

  1. (C#)日志接口请求响应时间

    日志接口响应时间,记录接口请求信息,响应结果以及响应时间等.可以清楚的分析和了解接口状态. 如果一个一个地在接口下面做日志,那不是我们想要的结果.所以,我们选择做一个特性来控制接口要不要记录请求响应日 ...

  2. 精尽Spring Boot源码分析 - 日志系统

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  3. Oracle logmnr工具分析日志脚本

    在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...

  4. 利用WebLog Experet分析日志获取性能需求

    一.下载WebLog Expert日志分析工具 官网下载地址:http://www.weblogexpert.com/download.htm 二.安装 安装很简单,点击“下一步”默认安装即可 三.配 ...

  5. txt文件按行处理工具类(可以截取小说、分析日志等)【我】

    txt文件按行处理工具类(可以分析日志.截取小说等) package file; import java.io.BufferedReader; import java.io.BufferedWrite ...

  6. shell分析日志常用指令合集

    数据分析对于网站运营人员是个非常重要的技能,日志分析是其中的一个.日志分析可以用专门的工具进行分析,也可以用原生的shell脚本执行,下面就随ytkah看看shell分析日志常用指令有哪些吧.(log ...

  7. linux运维之分析日志相关命令(1)

    一.分析日志 1.查看有多少IP访问 awk '{print $1}' log_file|sort|uniq|wc -l 2.查看某一个页面被访问的次数 grep "/index.php&q ...

  8. centos7安装Logwatch配合msmtp邮件客户端发送服务器监控分析日志

    ########################### #DATE 2016-07-29                         # #Authur by Denilas Yeung     ...

  9. 通过mysqldumpslow来分析日志

    通过mysqldumpslow来分析日志. 将mysql加入到全局变量中!!! sudo vim /etc/profile # 添加Mysql export PATH=$PATH:/usr/local ...

随机推荐

  1. 高级UIKit-06(UIImagePickerController)

    [day07-1-getSystemImage]:获取系统相册 UIImagePickerController图片采集控制器 picker采集者,采摘者 该方法继承自:UINavigationCont ...

  2. Qt 无边框窗体改变大小 完美实现

    近期,做项目用到无边框窗体,令人蛋疼的是无边框窗体大小的改变要像右边框那样,上下左右四周,而且要流畅. 网上也找了些代码,发现居然还要连接到windows事件,这显然不合常理,后来自己新建了demo, ...

  3. .NET Framework 4.5新特性

    前言 .Net FrameWrok的每个版本都要他的新特性的加入,比如,NET1.1中的委托,NET2.0中的泛型,NET3.0中的Linq,.NET4.0中的动态类型,那么.NET Framewor ...

  4. PowerMock mock私有方法

    import java.util.Random; public class CodeWithPrivateMethod { public void meaningfulPublicApi() { if ...

  5. Git命令非主流札记

    使用git做开发的版本管理也有一年半之多了,但是始终都是常用的branch commit status diff push等一些再常用不过的命令,最近闲下来,打算学习一下高端用法,所以就静下心来好好读 ...

  6. cocos2d-x游戏开发系列教程-中国象棋04-摆棋

    前情回顾 在之前的学习中,我们已经了解到,下棋主界面是由CCMainMenu类实现的,在它的init函数中,初始化了 主界面需要的各种数据,包括:创建控件,初始化32个棋子,初始化执行变量等等,在这个 ...

  7. Gora_百度百科

    Gora_百度百科     Gora    编辑    目录         1什么是Apache Gora         2为什么要使用Apache Gora         3Gora的一个源代 ...

  8. 多图片/文件上传 - SwfUpload/PlUpload

    <文件上传利器SWFUpload使用指南> <前端上传组件Plupload使用指南>

  9. sharepoint 2013 根据网站模版创建网站,并赋值网站权限 create a site by custom site template

    通过程序,根据网站模版,创建新的网站 private void CreateSiteBySiteTemplate() { SPSecurity.RunWithElevatedPrivileges(de ...

  10. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user 'xxxx'@''

    这两天项目一直在报这个错误消息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to ...