+ Responder ao Tópico



  1. #1

    Padrão script bash

    Galera tenho um log no seguinte formato:

    MES-DIA-HORA-SERVICO-IP

    em linhas separadas quero percorrer isso linha a linha e inserir isso num BD MySQL,
    o comando pra inserir no banco seria assim:

    insert into ataques(mes,dia,hora,servico,ip) values(´$mes´,´$dia´,´$hora´,´$servico´,´$ip´

    quero saber o seguinte como percorrer o arquivo linha a linha e atribuir
    $mes=MES $dia=DIA,etc.... alguem tem alguma ideia??????? <IMG SRC="images/forum/icons/icon27.gif"> <IMG SRC="images/forum/icons/icon27.gif"> <IMG SRC="images/forum/icons/icon27.gif">

  2. #2
    Mr_Mind
    Visitante

    Padrão script bash

    eu prefiro Perl! Instale o MySQL com suporte a Perl, depois instaleo Perl, depois o DBI e o DBD::MySQL (esses ultimos vc pode encontrar em cpan.org).

    depois disso leia a documentaçao do DBI::MySQL, e&acute; rapido, eu em um dia consegui meter o Perl a interagir com PostgreSQL.

    Mas adiantando ja o processo de aprendizagem...

    $ pico ataque.pl

    (digito o seguinte<IMG SRC="images/forum/icons/icon_smile.gif">

    #!/usr/bin/perl

    use Cwd;
    use DBI;

    $/="\r\n";
    $userid=0;

    $host = shift;
    $port= 3306;
    $db = shift;
    $user = shift;
    $pass = shift;


    # isto permitira&acute; que possa inserir dados noutra máquina

    if (($host eq "&quot<IMG SRC="images/forum/icons/icon_wink.gif"> || ($db eq "&quot<IMG SRC="images/forum/icons/icon_wink.gif"> || ($user eq "&quot<IMG SRC="images/forum/icons/icon_wink.gif"> || ($pass eq "&quot<IMG SRC="images/forum/icons/icon_wink.gif">){
    die "\nmodo de uso: perl db_conteudos.pl HOST NOME_DA_BD USER PASSWORD\n";
    }


    #ligar a BD
    $dbCon = DBI->connect("dbi:MySQL:dbname=$db;host=$host;port=$port",$user,$pass,{RaiseError >= 1, AutoCommit => 0}) or die "nao consegui ligar";


    #abrir ficheiro para parse
    my $ficheiro = "conteudo.txt";
    open (FILE, $ficheiro) or exit 1;
    @conteudo = <FILE>;

    foreach $linha (@conteudo){
    @parametros = split(/-/, $linha);

    # definir valores e inserir
    $mes = parametros[0];
    $dia = parametros[1];
    $hora = parametros[2];
    $servico = parametros[3];
    $ip = parametros[4];

    $strSql = "INSERT INTO ataques (mes,dia,hora,servico,ip) VALUES(&acute;".$mes."&acute;,&acute;".$dia."&acute;,&acute;".$hora."&acute;,&acute;".$servico."&acute;,&acute;".$ip."&acute";
    $rsSet = $dbCon->execute($strSql);


    #desligar da BD
    $dbCon->disconnect;

    print "Fim";


    Isso ja&acute; o deve ajudar em bastante, podera&acute; ter uma falha ou outra que você tera&acute; de descobrir. Qualquer coisa, vc sabe onde me encontrar grande amigo <IMG SRC="images/forum/icons/icon_wink.gif">