Heim  >  Artikel  >  Datenbank  >  每日分析日志文件并将结果入库到MySQL的实现过程讲解

每日分析日志文件并将结果入库到MySQL的实现过程讲解

WBOY
WBOYOriginal
2016-06-07 17:27:561245Durchsuche

互联网公司每天都要统计日志文件,从中挖掘出想要的信息,比如一个软件的安装量、活跃度等。这些信息都需要入库,并进行展示。下

互联网公司每天都要统计日志文件,从中挖掘出想要的信息,比如一个软件的安装量、活跃度等。这些信息都需要入库,并进行展示。下面,对这个实现过程进行讲解。

具体的过程可分为以下几个步骤:

(1)awk统计日志文件,并将统计结果拼接成sql语句;

(2)写shell脚本,将这些sql语句入库;

(3)将shell脚本加入linux中的计划任务中,让其每天凌晨定时执行,从而实现每天自动分析日志并入库;

下面分步骤进行讲解。

一. awk统计日志文件,并拼接成sql语句

awk是对日志文件分析的一个有效命令,下面通过统计

二. 通过shell脚本将sql语句入库

上面我们通过了awk实现了日志文件的统计结果转化成sql语句,下面我们只需要将读取这些sql语句,并将他们执行即可,这样统计结果自然就录入到数据库中了。入库的shell命令如下所示:

mysql -u$user -p$pass -D $db -e “insert into t_table values(xxx,xxx,xxx);”

参考链接:

这里sql语句入库是从入到主库中,当执行这些insert语句时,读取分离代理器会判断这些sql操作是写数据库操作,,会将其写到数据库的主库中。但是,当用户请求读取数据库时,也即select操作,读取分离代理器会判断出select是读操作,会将用户请求转移到从库中,所以读的数据是从从库中读取的。即写是写到主库中,读是从从库读。

参考链接:

三. 将shell脚本加入linux中的计划任务中

将shel脚本加入linux中计划任务,可以通过contrab -e命令实现,通过这个命令可以打开当前用户的计划任务编辑器,用户只需要在这里输入自己想要什么时间想要执行的命令就可以了。linux会定期地从该文件中读取命令并执行。

我们输入命令:contrab -e

然后会打开一个编辑器,在其中输入下面这个命令:

0 5 * * * cd /home/ganji/seanzhao; sh dingding_insert_db.sh

之后保存退出即可。这样便加入了linux的计划任务中,上面的命令会每天凌晨5点执行。

参考链接:

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn