命令行:监控日志文件和数据添加到数据库(Command line: monitor log file

2019-10-16 18:20发布

我在监视日志文件。 每一行的格式如下:

2012    5       29      14      20              438.815 872.737 -1.89976       -0.55156     8.68749 -0.497848       -0.54559                0       0       6      00       0       0       0               0       0       0       0       0      80       9               0       0       10      0       0       0       8      00       9       0       0       0       0       0       0               2      41       84      0       0       0       1       0

正如你所看到的,每个值由制表符分隔。

我怎么能写一个Perl脚本取数据的每个新行(日志文件每10分钟更新一次),并将这些数据插入到MySQL数据库?

我想这样做尽可能多的这地的命令行上。

如果我做tail -f -n 1 ./Eamorr.out > myPerlScript.pl ,将我的Perl脚本获取数据的每个文件附加到时间呢?

提前谢谢了,

Answer 1:

在bash的另一个形式给出:

#!/usr/bin/perl -w

use strict;

$|++; # unbuffer output

open FH, "tail -f /var/log/syslog |";

while (<FH>) { chomp; print; }

如果没有的Perl纯壳:

tail -f /var/log/syslog |
    while read a; do
        echo "INSERT INTO FOOBAR VALUES($(
            sed "s/ /','/g; s/^/'/; s/$/'/" <<< "$a")
        );"
    done


Answer 2:

如果这是你要采取的方法,你需要一个管道,如:

tail -f -n 1 ./Eamorr.out | myPerlScript.pl

其中myPerlScript.pl读取输入线喜欢:

while (<>) {
chomp;
print "Handling: $_\n";

}



文章来源: Command line: monitor log file and add data to database