免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bzh_516
打印 上一主题 下一主题

[其他] shell 如何把解析日志,生成文件,统一导入mysql库 [复制链接]

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-27 06:20:00程序设计版块每日发帖之星
日期:2016-03-03 06:20:00数据库技术版块每日发帖之星
日期:2016-05-06 06:20:00
11 [报告]
发表于 2016-02-26 15:24 |只看该作者
不是这两个字符字段。回复 10# elu_ligao
我写下我所有字段,并写一行日志,麻烦您了。

日志:c1---c15个字符。
c1:2016-02-17
c2:07:09:08
c3:10.132.51.28
c4:-
c5:10.10.236.53
c6:GET
c7:/Net/comm_premium.action
c8  WT.tz=8&WT.bh=15&WT.ul=zh-CN&WT.cd=24&WT.sr=1366x768&WT.jo=Yes&WT.ti=%25E9%BD% 2591&WT.js=Yes&WT.jv=1.5&WT.ct=unknown&WT.bs=960x1714&WT.fi=Yes&WT.fv=18.0&WT.em=uri&WT.le=GBK&WT.tv=8.0.2&&WT.cg_page=车辆信息&WT.cg_onclick=品牌型号&WT.si_n=wangshangtoubao_xin&WT.si_p=xuanlipin&WT.wx_id=15679838&WT.vt_f_tlh=1455694378&WT.vt_sid=2944291057d251650af1442829398227.1455692598350&WT.co_f=2944291057d251650af1442829398227

c9:200
c10:  -
c11:  -

c12:  Mozilla/5.0+(Windows+NT+6.1;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/41.0.2272.118+Safari/537.36

c13:  WEBTRENDS_ID=10.132.50.20-3693481680.30470670::71D8FA627199166C6802E1B71D70B;+vjuids=-68a2c6686.150caf4ceb8.0.2ddc630c;+_adwp=222087242.7565661489.1445496443.1445496443.1446602243.2;+Hm_lvt_041c5d3a51ebccd1458089723c2158f6=1446514158,1448419448;+vjlast=1446514053.1448419412.13;+acta=%7B%202%5D%7D%7D;+_pzfxuvpc=14457;+_jzqy=1.1451960681.1451962088.2.jzqsr=baidu|jzqct=%E9%98%B3%99%A9.jzqsr=baidu|jzqct=%E9%98%B3%EA9;+__utma=131097296.18274500.1442581496.1451962024.1453472951.6;+__utmz=131097296.1453472951.6.5.utmcsr=chexian.sinosig.com|utmccn=(referral)utmcmd=referral|utmcct=/simplePremium/2016NewYear.jsp;+_ga=GA1.2.18274500.1442581496;+Hm_lvt_42bb1ac8e3a3c1c79ca6b08dc61b3899=1452562562,1452838195,1453470425,1453799715;+_jzqx=1.1442581262.1455603674.26.jzqsr=chexian%2Esinosig%2Ecom|jzqct=/net/human_exact%2Eaction#.jzqsr=bao%2Ejd%2Ecom|jzqct=/vehicle/trade;+_jzqa=1.182714398382341250.1442581262.1455603674.1455608269.89;+_jzqc=1

c14:  /nCarInfo_exact.action
c15:  dcsgk64sl0000008yb6al4ec3_9x2w

程序:
#!/bin/sh

#a="dcsgk64sl0000008yb6al4ec3_9x2w_sdc_02_17_2016(2).log"
a=$1
echo $a
HOSTNAME="rdsymhxx37847x97w9ka.mysql.rds.aliyuncs.com"
PORT="3306"
USERNAME="lunianming"
PASSWORD="lunianming"
DBNAME="lutest"
TABLENAME="webtrends"

sed -i '/^#/d' $a

FILE="${TABLENAME}.sql"

rm -f $FILE

echo "insert into ${TABLENAME}(dateid,times,ip,username,host,method,uristem,uriquery,cstatus,bytes,versions,UserAgent,Cookie,Referer,dcsid,agentCode,utm_source,tz,bh,sr,jo,ti,js,jv,bs,fi,fv,si_n,si_p,comcode,usercode,mc_id,srch,cg_n,cg_s,cg_page,cg_onclick,wx_id,WEBTRENDS_ID,uv_cookie_id,shh,word,keyword,createdate) values "> $FILE

while read c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15

do

if [ "$c8" = "cs-uri-stem" ]; then

continue

fi

agentCode=$(echo $c8|grep -oP '(?<=agentCode=)[^&]*')

utm_source=$(echo $c8|grep -oP '(?<=utm_source=)[^&]*')

tz=$(echo $c8|grep -oP '(?<=WT.tz=)[^&]*')

bh=$(echo $c8|grep -oP '(?<=WT.bh=)[^&]*')

sr=$(echo $c8|grep -oP '(?<=WT.sr=)[^&]*')

jo=$(echo $c8|grep -oP '(?<=WT.jo=)[^&]*')

ti=$(echo $c8|grep -oP '(?<=WT.ti=)[^&]*')

js=$(echo $c8|grep -oP '(?<=WT.js=)[^&]*')

jv=$(echo $c8|grep -oP '(?<=WT.jv=)[^&]*')

bs=$(echo $c8|grep -oP '(?<=WT.bs=)[^&]*')

fi=$(echo $c8|grep -oP '(?<=WT.fi=)[^&]*')

fv=$(echo $c8|grep -oP '(?<=WT.fv=)[^&]*')

si_n=$(echo $c8|grep -oP '(?<=WT.si_n=)[^&]*')
si_p=$(echo $c8|grep -oP '(?<=WT.si_p=)[^&]*')
comcode=$(echo $c8|grep -oP '(?<=WT.comcode=)[^&]*')
usercode=$(echo $c8|grep -oP '(?<=WT.usercode=)[^&]*')
mc_id=$(echo $c8|grep -oP '(?<=WT.mc_id=)[^&]*')
srch=$(echo $c8|grep -oP '(?<=WT.srch=)[^&]*')
cg_n=$(echo $c8|grep -oP '(?<=WT.cg_n=)[^&]*')

cg_s=$(echo $c8|grep -oP '(?<=WT.cg_s=)[^&]*')

cg_page=$(echo $c8|grep -oP '(?<=WT.cg_page=)[^&]*')

cg_onclick=$(echo $c8|grep -oP '(?<=WT.cg_onclick=)[^&]*')

wx_id=$(echo $c8|grep -oP '(?<=WT.wx_id=)[^&]*')

WEBTRENDS_ID=$(echo $c13|grep -oP '(?<=WEBTRENDS_ID=)[^;]*')
uv_cookie_id=$(echo $c13|grep -oP '(?<=uv_cookie_id=)[^;]*')

shh=$(echo $c14|grep -oP '(?<=shh=)[^&]*')
word=$(echo $c14|grep -oP '(?<=word=)[^&]*')
keyword=$(echo $c14|grep -oP '(?<=keyword=)[^&]*')

echo "('"$c1"','"$c2"','"$c3"','"$c4"','"$c5"','"$c6"','"$c7"','"$c8"','"$c9"','"$c10"','"$c11"','"$c12"','"$c13"','"$c14"','"$c15"','"$agentCode"','"$utm_source"','"$tz"','"$bh"','"$sr"','"$jo"','"$ti"','"$js"','"$jv"','"$bs"','"$fi"','"$fv"','"$si_n"','"$si_p"','"$comcode"','"$usercode"','"$mc_id"','"$srch"','"$cg_n"','"$cg_s"','"$cg_page"','"$cg_onclick"','"$wx_id"','"$WEBTRENDS_ID"','"$uv_cookie_id"','"$shh"','"$word"','"$keyword"',now())," >> $FILE

done <$a

sed -i '$s/,$/;/' $FILE

mysql --default-character-set=utf8  -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} <  "$FILE"



   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
12 [报告]
发表于 2016-02-26 16:19 |只看该作者
回复 11# bzh_516


    这表结构也是够可以的!
    既然是全字段的插入, 第一个 echo "insert into... 就可以不要了, 后面的那个 echo 追加的把最前面的 (  和 和最后面的), 去掉, 最后那个sed 命令不要了, 就生成了全数据文件了
    然后 mysql --default-character-set=utf8  -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "
    LOAD DATA LOCAL INFILE './tabletest.sql' INTO TABLE tabletest
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'; "
    这样在导入数据的时候肯定会更快的

    至于生成文件要花时间, 你可以再把文件按合适的行数分隔(每行应该就是一条数据)成多个数据源文件, split 可以实现, 例如生成了一堆以src 开头的文件
    然后
    for file in $(ls src*)
    do
          sh getdata.sh $file &
    done

    getdata.sh  就是上面你改过后的脚本

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
13 [报告]
发表于 2016-02-26 16:23 |只看该作者
回复 1# bzh_516

用awk先生成一个文件(要想提高效率就用awk),然后统一导入mysql,这样比较好。
   

论坛徽章:
1
处女座
日期:2013-08-19 15:17:06
14 [报告]
发表于 2016-02-27 20:07 |只看该作者
正解!
题主所说的生成文件时间过长,就在于while循环中的read命令效率很低造成的,用awk的话,预计10分钟内能执行完。

wh7211 发表于 2016-02-26 16:23
回复 1# bzh_516

用awk先生成一个文件(要想提高效率就用awk),然后统一导入mysql,这样比较好。

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-27 06:20:00程序设计版块每日发帖之星
日期:2016-03-03 06:20:00数据库技术版块每日发帖之星
日期:2016-05-06 06:20:00
15 [报告]
发表于 2016-02-29 09:43 |只看该作者
您好,我调整了好几次,执行不了,能否帮我下个能执行的程序。毕竟我还是个菜鸟,又麻烦您,真的很不好意思。回复 12# elu_ligao


   

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-27 06:20:00程序设计版块每日发帖之星
日期:2016-03-03 06:20:00数据库技术版块每日发帖之星
日期:2016-05-06 06:20:00
16 [报告]
发表于 2016-02-29 09:45 |只看该作者
您好,能否帮我写个awk的语句,我查了好多,说的都不一样,也一直出错,非常感谢。回复 14# missing-cn


   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
17 [报告]
发表于 2016-02-29 10:41 |只看该作者
回复 15# bzh_516


    你把你文件截几行出来看看

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-27 06:20:00程序设计版块每日发帖之星
日期:2016-03-03 06:20:00数据库技术版块每日发帖之星
日期:2016-05-06 06:20:00
18 [报告]
发表于 2016-02-29 10:48 |只看该作者
您有微信或者邮件吗,哥们。下面我给您截取三行文件回复 17# elu_ligao

#第一行
2016-02-17 07:05:54 211.144.206.6 - chexian.sinosig.com GET /NetCar/NewInsurance/xingshichengshi.onclick agentId=&agentName=&agentMobile=&accountName=&city=&cityCode=&licenseNum=&carOwnerMobile=&comCode=&areaCode=W00110002&paraMap.cno=&paraMap.areaCode=W00110002&paraMap.id=&paraMap.spsource=NET&paraMap.agentCode=W00110002&paraMap.tmUserCode=&paraMap.tmdes=&paraMap.simpleChannel=&paraMap.premiumMin=&paraMap.unid=&paraMap.exxFusion=&WT.tz=8&WT.bh=15&WT.ul=zh-cn&WT.cd=32&WT.sr=1366x768&WT.jo=Yes&WT.ti=%252525E6%252525B1%252525BD%252525E8%252525BD%252525A6%252525E4%252525BF%2525259D%252525E9%25252599%252525A9%252525E7%2525259F%252525A5%252525E8%252525AF%25252586_%252525E9%25252598%252525B3%252525E5%25252585%25252589%252525E6%252525B1%252525BD%252525E8%252525BD%252525A6%252525E4%252525BF%2525259D%252525E9%25252599%252525A9%252525E5%252525AE%25252598%252525E6%25252596%252525B9%252525E7%252525BD%25252591%252525E7%252525AB%25252599&WT.js=Yes&WT.jv=1.3&WT.ct=lan&WT.hp=0&WT.bs=960x150&WT.fi=Yes&WT.fv=10.0&WT.em=uri&WT.le=gb2312&WT.tv=8.0.2&WT.si_n=wangshangtoubao_xin&WT.si_p=jibenxinxi&WT.mle=UTF-8&WT.vt_f_tlh=1455694206&WT.cg_page=基本信息&WT.cg_onclick=车辆行驶城市&WT.vt_sid=2fd64b1a9e989c17ea41452493600530.1455694206406&WT.co_f=2fd64b1a9e989c17ea41452493600530 200 - - Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) WEBTRENDS_ID=211.144.206.6-2761424368.30479617::E75A7F032313C6E896C0C01AC6E9  chexian.sinosig.com/NetCar/NewInsurance.shtml dcsgk64sl0000008yb6al4ec3_9x2w
#第二行
2016-02-17 07:05:54 221.3.134.149 - chexian.sinosig.com GET /Net/nCarInfo_exact.action WT.tz=8&WT.bh=15&WT.ul=zh-cn&WT.cd=32&WT.sr=1366x768&WT.jo=Yes&WT.ti=%25E6%25B1%25BD%25E8%25BD%25A6%25E4%25BF%259D%25E9%2599%25A9%25E7%259F%25A5%25E8%25AF%2586_%25E9%2598%25B3%25E5%2585%2589%25E6%25B1%25BD%25E8%25BD%25A6%25E4%25BF%259D%25E9%2599%25A9%25E5%25AE%2598%25E6%2596%25B9%25E7%25BD%2591%25E7%25AB%2599&WT.js=Yes&WT.jv=1.3&WT.ct=lan&WT.hp=0&WT.bs=960x1593&WT.fi=Yes&WT.fv=10.0&WT.em=uri&WT.le=gb2312&WT.tv=8.0.2&WT.mle=UTF-8&WT.si_n=wangshangtoubao_xin&WT.si_p=jingquebaojia&WT.vt_f_tlh=1455694208&WT.vt_sid=2009a32e18ff74573841441525856309.1455694014298&WT.co_f=2009a32e18ff74573841441525856309 200 - - Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0) WEBTRENDS_ID=113.200.251.142-2381497952.30468213::580D691463A56F14190CDE2C90;+__utma=131097296.1528944625.1441675029.1454721182.1455610569.6;+__utmz=131097296.1455610569.6.6.utmcsr=sinosig.com|utmccn=(referral)|utmcmd=referral|utmcct=/;+Hm_lvt_041c5d3a51ebccd1458089723c2158f6=1454721192,1455610583;+_jzqckmp=1;+_gat=1;+_ga=GA1.2.1528944625.1441675029;+Hm_lvt_42bb1ac8e3a3c1c79ca6b08dc61b3899=1455587946,1455596368,1455673001,1455694012;+Hm_lpvt_42bb1ac8e3a3c1c79ca6b08dc61b3899=1455694111;+_jzqx=1.1441525950.1455694119.9.jzqsr=chexian%2Esinosig%2Ecom|jzqct=/netcar/caronlineinsurance_forwardnewinsurance%2Eaction.jzqsr=chexian%2Esinosig%2Ecom|jzqct=/netcar/caronlineinsurance_forwardnewinsurance%2Eaction;+_jzqa=1.3363217003340294000.1441525950.1455675940.1455694119.241;+_jzqc=1;+_jzqb=1.2.10.1455694119.1  chexian.sinosig.com/Net/Human_exact.action?agentId=&agentName=&agentMobile=&accountName=&city=&cityCode=&licenseNum=&carOwnerMobile=&comCode=&areaCode=W02400656&paraMap.cno=HD20140227921&paraMap.areaCode=W02400656&paraMap.id=28736831&paraMap.spsource=P05-ADWBqyd-yg1001-641696&paraMap.agentCode=W02400656&paraMap.tmUserCode=&paraMap.tmdes=&paraMap.simpleChannel=1&paraMap.premiumMin=&paraMap.unid=QY641696&paraMap.exxFusion[/url] dcsgk64sl0000008yb6al4ec3_9x2w
#第三行
2016-02-17 07:05:54 211.144.206.6 - chexian.sinosig.com GET /Net/Human_exact.action WT.tz=8&WT.bh=15&WT.ul=zh-cn&WT.cd=32&WT.sr=1366x768&WT.jo=Yes&WT.ti=%25E6%25B1%25BD%25E8%25BD%25A6%25E4%25BF%259D%25E9%2599%25A9%25E7%259F%25A5%25E8%25AF%2586_%25E9%2598%25B3%25E5%2585%2589%25E6%25B1%25BD%25E8%25BD%25A6%25E4%25BF%259D%25E9%2599%25A9%25E5%25AE%2598%25E6%2596%25B9%25E7%25BD%2591%25E7%25AB%2599&WT.js=Yes&WT.jv=1.3&WT.ct=unknown&WT.fi=Yes&WT.fv=10.0&WT.em=uri&WT.le=gb2312&WT.tv=8.0.2&WT.mle=utf-8&WT.si_n=wangshangtoubao_xin&WT.si_p=cheliangxinxi&WT.vt_f_tlh=1455694200&WT.vt_sid=2023336a895449e685b1454378567799.1455693946264&WT.co_f=2023336a895449e685b1454378567799 200 - - Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) WEBTRENDS_ID=211.144.206.6-1722825152.30498138::501EE270B3394B75C4424E7BEDAE  chexian.sinosig.com/Net/nCitySureAction.action?agentId=&agentName=&agentMobile=&accountName=&city=&cityCode=&licenseNum=&carOwnerMobile=&comCode=&areaCode=W00110002&paraMap.cno=&paraMap.areaCode=W00110002&paraMap.id=&paraMap.spsource=NET&paraMap.agentCode=W00110002&paraMap.tmUserCode=&paraMap.tmdes=&paraMap.simpleChannel=&paraMap.premiumMin=&paraMap.unid=&paraMap.exxFusion  dcsgk64sl0000008yb6al4ec3_9x2w

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
19 [报告]
发表于 2016-02-29 11:28 |只看该作者
回复 18# bzh_516


    你加下 elu_ligao-guigui, 微信

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-27 06:20:00程序设计版块每日发帖之星
日期:2016-03-03 06:20:00数据库技术版块每日发帖之星
日期:2016-05-06 06:20:00
20 [报告]
发表于 2016-02-29 13:52 |只看该作者
哥们,我的添加不了,找不到您的名称,我的微信是  :  bzh_516         
回复 19# elu_ligao


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP