首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动将每10分钟生成的web应用程序日志加载到mysql

问自动将每10分钟生成的web应用程序日志加载到mysql
EN

Stack Overflow用户
提问于 2015-04-14 14:01:14
回答 2查看 49关注 0票数 0

我的目的是分析web应用程序的日志,使用mysql作为数据库。首先,我使用awk过滤一些无用的信息来生成过滤日志,然后我将LOAD DATA import this log应用到mysql中。

我的问题是:这些原始日志每天每10分钟生成一次。生成新的web应用程序日志后,如何生成过滤日志?生成新的过滤日志后,如何自动将这些文件导入mysql?

原始日志:

代码语言:javascript
复制
20150414/0900.log 
20150414/0910.log 
EN

回答 2

Stack Overflow用户

发布于 2015-04-14 23:11:07

我已经尝试创建了一个小脚本,可以很容易地解释如何做到这一点。在这里,你有一个控制所有readFiles的awk。如果在新的读取过程中读取的文件数量较多,系统将解析文件名并将其保存在"readFiles“文件中,该文件将在awk中进行检查,以确保该文件之前未被读取。

请检查您的系统不会删除旧的日志,并注意拆分已读的控制文件,或每天创建新的文件,以避免非常大的文件。

代码语言:javascript
复制
//this will give you the today datae
date +%Y%m%d

代码如下:

代码语言:javascript
复制
echo "x" > readFiles

lastnum=0
num=0
count=0
while true
do
echo  "LOOKING FOR NEW FILES. LASTCOUNT="$lastcount
count=`ls ./2015*/*.log | wc -l`
echo $count
if [ $count -gt $lastnum ] 
then
lastnum=$count
`ls ./2015*/*.log | awk -F"/" 'BEGIN {
  while(( getline < "readFiles") > 0 ) {
    readedFiles[$0]
  }}
    {if(!($0 in readedFiles)){print $0}}
'`>> readFiles
echo "WAITING RESTART"
sleep 10
else
echo "NO NEW FILES FOUND"
sleep 10
fi
done
票数 0
EN

Stack Overflow用户

发布于 2015-04-16 15:40:57

而不是编写脚本来监视日志。我使用inotify-tools在文件系统事件上触发脚本,只需几行代码就可以完成任务。

代码语言:javascript
复制
NOW=$(date +"%Y%m%d")
while true ;
do
inotifywait -r -e create,move /rsynclog/logs/$NOW && \
/rsynclog/logs/generate.sh
done 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29620160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档