linux - 命令行 : monitor log file and add data to database

标签 linux perl unix command-line tail

我正在监控一个日志文件。每行具有以下格式:

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 脚本来获取每一行新数据(日志文件每十分钟更新一次)并将这些数据插入 MySQL 数据库?

我想尽可能多地在命令行上完成这些工作。

如果我执行 tail -f -n 1 ./Eamorr.out > myPerlScript.pl,我的 perl 脚本会在每次附加文件时获取数据吗?

非常感谢,

最佳答案

bash 中的另一种方法:

#!/usr/bin/perl -w

use strict;

$|++; # unbuffer output

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

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

在纯 shell 中没有 Perl:

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

关于linux - 命令行 : monitor log file and add data to database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801034/

相关文章:

perl - 如何退出在 Morbo 或 Hypnotoad 服务器下运行的程序

unix - PowerShell 中等效的时间命令

ruby-on-rails - 在 Unix 上,查找执行该程序的用户是否为 root?

linux - Linux 内核中 UD2 操作码的用途是什么?

perl - 信号编号 2 的名称

linux 添加另一个系统管理员

database - 多次使用 Test::MockDBI 得到不同的结果

c++ - stat() 函数未正确返回

json - hadoop + ambari 集群更改配置

c++ - 如何解决此阻塞问题?