- script bash
+ Responder ao Tópico
-
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">
-
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´ 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´ que possa inserir dados noutra máquina
if (($host eq ""<IMG SRC="images/forum/icons/icon_wink.gif"> || ($db eq ""<IMG SRC="images/forum/icons/icon_wink.gif"> || ($user eq ""<IMG SRC="images/forum/icons/icon_wink.gif"> || ($pass eq ""<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(´".$mes."´,´".$dia."´,´".$hora."´,´".$servico."´,´".$ip."´";
$rsSet = $dbCon->execute($strSql);
#desligar da BD
$dbCon->disconnect;
print "Fim";
Isso ja´ o deve ajudar em bastante, podera´ ter uma falha ou outra que você tera´ de descobrir. Qualquer coisa, vc sabe onde me encontrar grande amigo <IMG SRC="images/forum/icons/icon_wink.gif">