在linux下用awk分析日志文件

今儿刚坐下不久,领导就发话了,在这么个文件中找到开头为To: =?,包在尖括号中的数据存到数据库中。

文件如下:

<[email protected]>

To: =?UTF-8?B?5p2O5LqR5biG?= <[email protected]>

Message-ID: <[email protected]>

Subject: =?UTF-8?B?5p2O5LqR5biG77yM5oub5ZWG6K+B5Yi4IOmCgOivt+S9oA==?=

=?UTF-8?B?5oqV6YCSMjAxNOagoeWbreaLm+iBmOiBjOS9jQ==?=

首先要想办法提取出数据到文件,然后循环读每一行,并插入到数据库。

本人没什么好办法,只好采用awk硬撸…

awk ‘/To: =\?/‘ filename | awk -F ‘<‘ ‘{print $2}‘ |awk -F ‘>‘ ‘{print $1}‘ >> lzq.result

方法虽笨,但也取着了……

循环读文件每一行有三种方法:本人采用的就是第二种

1) while read line

do

... $line

done > filename(要循环的文件名)

2) cat filename |while read line

do

...$line

done

3) for line in ‘cat filename‘

do

...$line

done

总感觉这个$line很Nb……

接下来就要存进数据库了,采用如下命令:

mysql -u用户名 -p密码 -h主机名 -e 数据库语句

一定要注意单双引号……

最终脚本如下。

#!/bin/bash

awk ‘/To: =\?/‘ filename | awk -F ‘<‘ ‘{print $2}‘ |awk -F ‘>‘ ‘{print $1}‘ | while read line

do

mysql -uroot -proot -h 127.0.0.1 -e "insert into test.deny_mail(email) values(‘$line‘); "

done

成。

时间: 2024-11-02 15:22:50

在linux下用awk分析日志文件的相关文章

Linux下自动清除MySQL日志文件

MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days=7 max-binlog-size=268435456

解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 评论(1) 收藏 举报 tomcatlinux工具任务web 由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文

分析日志文件

在tomcat中安装logback插件,此插件用于生成日志.该日志中包括很多信息,我们的目的是将需要的数据进行整理,将其插入到MySQL数据库中,并将其做成定时任务执行. 一下是原日志文件内容: 我们需要client,uniquecode,device,versioncode,interface,createtime这些字段 思路如下: 1.我们只需要对包含接口和请求开始字段的行进行数据整理. grep "personal/checkupdate.json请求开始"   /home/l

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题. 因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux

linux下编译原理分析

linux下编译hello.c 程序,使用gcc hello.c,然后./a.out就可以运行:在这个简单的命令后面隐藏了许多复杂的过程,这个过程包括了下面的步骤: ====================================================================================== 预处理: 宏定义展开,所有的#define 在这个阶段都会被展开 预编译命令的处理,包括#if #ifdef 一类的命令 展开#include 的文件,像上面h

Linux下各种后门和日志工具详解

攻入Linux系统后,很多入侵者往往就开始得意忘形了.这其中还有一个原因,就是技术性也要求更高了.下面,我们来看看一些常用的经典工具. 1.从这里延伸:后门和连接工具 (1)Httptunnel Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙.说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过

将javaweb项目部署到linux下的详细分析

以下是对将javaweb项目部署到linux下的方法进行了详细的分析介绍,需要的朋友可以过来参考下一般都在windows下开发的,现在部署到linux下:1,将项目达成war包(用eclipse,项目右键–>Export–>选择war file)2,将tomcat(用winSCP当然你也可以用secureCRT,用securCRT需要建立sftp(即上传文件的目录),用put tomcat命令)考到ilunx对应的目录下3,然后将项目的war包放到tomcat的webapps目录下4,启动to

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

linux 下查找大于100M的文件

命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du -sh [dirname|filename] 如: 当前目录的大小: du -sh . 当前目录下个文件或目录的大小: du -sh * [[email protected] var]# du -