文档章节

对log进行shell方法处理

夏洛特_
 夏洛特_
发布于 2016/04/01 23:44
字数 297
阅读 5
收藏 0
一、功能描述
对log进行数据筛取,用切割的方式,获取record_time、function_name、Error_state、client_ip、tv_id、description等数据并插入到本地数据库的error_log表中

二、log模型

[2016-03-09 16:54:05:726] HttpSendLiveStream ERROR!!
[473 58.254.216.34:18297 TV4016]:: caught up by live stream! curr:17775[19886->19885]

[2016-03-09 16:54:07:219] LiveStateCheck:: TV6047 not received pkt for 15 seconds!!
[2016-03-09 16:54:07:951] LiveStateCheck:: TV6046 not received pkt for 15 seconds!!
[2016-03-09 16:54:08:105] HlsCheckStealingLink:: HLS Relay :client 209.126.64.42 is stealing!
 
三、完整代码
 #/bin/bash
#
# Script: log_run_shell
# Author: Charlotte
# Date2016/3/29
#
# Platform: Linux
#
#
##################################################
#         Define files and variasles here
##################################################
# id time
cdn_path=`pwd`
ID="0"
sign="0"
touch "$cdn_path/"cdn.txt
:> "$cdn_path"cdn.txt
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="operation_monitor"
TABLENAME="error_log"
##################################################
#         Beginning of main
##################################################
while read LINE
do
 if [ $sign = "1" ] ; then # record no.2
#  if [${LINE:1:2} = "["]; then
  IP=`echo $LINE | awk -F ' ' '{print $2}' | awk -F ':' '{print $1}'`
   tv_key=`echo $LINE | awk -F '[] ]' '{print $3}'`
   duration_time=`echo $LINE | awk -F '[:[]' '{print $6}'`
#  fi
  description=${LINE#*::}
  sign="0"
 insert_sql="insert into ${TABLENAME}(id,function_name,description,record_time) values('','$model','$description',$record_time)"
  mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
 else    # record no.1
  echo $LINE | grep -E "ERROR|FATAL|WARNING" 1>/dev/null
  if [ $? != "0" ] ; then
   continue
  fi
  record_time=`echo $LINE | awk -F '[]. :[-]' '{print $2$3$4$5$6$7}'`
  model=`echo $LINE | awk -F ' ' '{print $3}'`
  state=`echo $LINE | awk -F '[ !]' '{print $4}'`
  sign="1"
  ID=$[($ID+1)]
 fi
done <"$cdn_path/"record_model.log
# End of script

© 著作权归作者所有

夏洛特_
粉丝 2
博文 80
码字总数 72279
作品 0
宁德
程序员
私信 提问
Jmeter中的Bean shell

一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小...

IT追寻者
2016/06/14
350
0
Django下测试与调试REST API的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zwgdft/article/details/52981310 对于大多数研发人员来说,都期望能找到一个良好的测试/调试方法,来提高工作...

Mr-Bruce
2016/10/31
0
0
MySQL复制解决方案(Replication Solutions)

MySQL复制可被用在许多不同的环境,和用于不同的目的. 1.用于备份 1.1 使用mysqldump备份Slave 为了保证数据的完整性,在备份之前需要暂时停止slave的复制使用: shell>mysqladmin stop-slave 或...

VictorLi
2010/12/10
1K
0
phalapi-进阶篇5(数据库读写分离以及多库使用)

先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 读写分离是我们常用的一种解决方案,它可以解决大量读操作的时候数据库瓶颈的问题,我们在真正开发一个项目的过程...

喵了_个咪
2015/11/24
1K
4
爬虫入门之Scrapy框架基础框架结构及腾讯爬取(十)

Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据。 如果安装了 IPython ...

善良小郎君
2018/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部