• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 過濾設備日志入庫(perl 版)

    過濾設備日志入庫(perl 版)

    作者: 時間:2016-10-10 來源:網絡 收藏

    腳本的主要功能就是實現了,對于一個設備的日志文件信息過濾,抓取需要的字段,然后插入數據庫,用perl語言實現起來很是方便,配合crontab使用,更是強大!!

    本文引用地址:http://www.czjhyjcfj.com/article/201610/306017.htm

    文件一條記錄:Jun 4 05:08:46 194.168.0.8 61: %SYS-5-CONFIG_I: Configured from console by vty0 (194.168.0.444)

    正則:(S+s+d+s+S+)s+(d+.d+.d+.d+)sS+:s+%(S+):s+(.*)

    腳本源碼

    #!/usr/bin/perl

    use DBI;

    my $log_record;

    my @log_arry;

    my $log_path;

    my $date;

    my $ip;

    my $type;

    my $desc;

    my $line;

    $log_path=/var/log/sourcep.log;

    `/etc/init.d/sysklogd stop`;

    `mv /var/log/source.log /var/log/sourcep.logtouch /var/log/source.log`;

    `/etc/init.d/sysklogd start`;

    my $db=dbi:mysql:dbname=xxxx;

    my $dbh= DBI->connect($db,root,xxxx,{'RaiseError'=>1,'AutoCommit'=>0}) or die Can't connect to DB:.DBI->errstr;

    my $sql=$dbh->prepare(q{INSERT INTO tbl_device(date,ip,type,descon) VALUES (?,?,?,?)});

    my ($date,$ip,$type,$desc);

    if (open(log_1,$log_path)){

    eval{

    while($line=){

    foreach($line){

    /(S+s+d+s+S+)s+(d+.d+.d+.d+)sS+:s+%(S+):s+(.*)/ and do{

    $date= $1;

    $ip = $2;

    $type= $3;

    $desc= $4;

    };# end do

    $sql->execute($date,$ip,$type,$desc);

    print ($datet.$ipt.$typet.$descn);

    } # end for

    } # end while

    $dbh->commit();

    } # end eval

    } # end if

    if($EVAL_ERROR){

    print Transaction aborted: ,$EVAL_ERROR,n;

    $dbh->rollback();

    } # end local if

    $dbh->disconnect();

    `rm /var/log/sourcep.log`;



    評論


    技術專區

    關閉
    主站蜘蛛池模板: 望城县| 汨罗市| 中西区| 景泰县| 西平县| 修武县| 康定县| 河北省| 郎溪县| 怀集县| 丽水市| 长顺县| 衡水市| 山西省| 嘉禾县| 靖州| 武义县| 厦门市| 郎溪县| 汉川市| 成武县| 曲麻莱县| 万年县| 乌拉特后旗| 营山县| 龙口市| 肃宁县| 石林| 秦安县| 科尔| 渑池县| 曲松县| 石首市| 普格县| 敖汉旗| 沭阳县| 平乐县| 射洪县| 宜宾县| 永春县| 富锦市|