Firewall com base de dados Mysql [RESOLVIDO]

1. Firewall com base de dados Mysql [RESOLVIDO]

Diego Pereira Grassato
dtux

(usa Slackware)

Enviado em 19/02/2010 - 21:31h

Olá! Estou tentando fazer a seguinte implementação, gravar os dados de ip e mac no banco de dados mysql, e busca-los usando shell script e fazer o iptables aplicar as regras segundo os dados obtidos,o que está acontecendo é o seguinte o comando que estou utilizando ele me retorna somente um registro queria saber como faço pra q ele me retorne todos o registros da tabela e somento os dados sem as linha do mysql, segue script da tabela e o camando utilizado para obter os dados!

CREATE TABLE `iptables` (
`firewall` int(11) NOT NULL auto_increment,
`tipo` enum('a','b','c') default 'a',
`ip` char(16) default NULL,
`mac` char(18) default '00:00:00:00:00:00',
`nome` varchar(70) default NULL,
`banda` char(10) default NULL,
`data` datetime default NULL,
PRIMARY KEY (`firewall`),
UNIQUE KEY `ip` (`ip`),
UNIQUE KEY `mac` (`mac`)
)

insert into iptables values ("3","a","10.10.10.14","00:00:00:00:00:26","Willi","300","NULL");

Busca os Ips
#####################################
mysql -uroot -panna -t --database "firewall" -e "select ip fro
m iptables where ip != 'NULL';" |sed -n 's/|//g;s/ //g;4p'

##################################
10.10.10.1

ele só esta me retornando o primeito endereço, se eu colocar 5 no lugar do 4 ele me retorna o segundo valor e discrimina o primeiro, eu quero q ele busque todos!!
#####################################
mysql -uroot -panna -t --database "firewall" -e "select ip fro
m iptables where ip != 'NULL';" |sed -n 's/|//g;s/ //g;5p'

##################################
10.10.10.12

Se alguem souber eu agradeço!!!!!



  


2. Re: Firewall com base de dados Mysql [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2010 - 23:43h

Eu não entendi bem, mas:

Acho que faltou o curinga * na sua querry e o parametro -s.

A variável DLC, a seguir esta sendo usada como um delimitador de campo. Caso o senhor deseje substituir as 'tabs' que espaçam os dados com [espaço] [ ponto e virgula].
Claro que você pode usar espaço simples ou outro(s) de sua escolha.

#!/bin/bash

DLC=' ;';
HST='localhost';
USR='user';
PWD='123456';
DBN='testes';
SQL='SELECT * FROM iptables'

QUERRY=$(mysql -s\
--host="${HST}"\
--user="${USR}"\
--password="${PWD}"\
--database="${DBN}"\
--execute="${SQL}" |\
sed "s/\t/${DLC}/g");

echo $QUERRY ;



Espero ter ajudado.


3. Consegui

Diego Pereira Grassato
dtux

(usa Slackware)

Enviado em 20/02/2010 - 01:11h

Mais um tempo fuçando e consgui!!! está aí o resultado:
######################################################################################
sql="select ip from iptables where ip != 'NULL';"
rslt=`mysql -uroot -panna -t --database "firewall" -e "$sql" |sed -n 's/|//g;s/-//g;s/ //g;s/+//g;s/ip//g;p' |awk 'NF>0' >file.txt`

for i in `cat file.txt`
do
echo $i

done

O Rsultado esperado seria esse:
10.10.10.1
10.10.10.12
10.10.10.13
10.10.10.14

Flow!!!!



4. Re: Firewall com base de dados Mysql [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/02/2010 - 01:25h

Entendi: só o ip... Então troque o curinga * por `ip` e acrescente o parametro --silent ou -s... e o use como um shell script mesmo.

Só fiz assim para ficar um pouco mais pratico de usar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts