Stránka 1 z 1

Parsovani v bash

Napsal: 14 Nov 2012 14:59
od Rudolf Dvořák
Pekny den muze mi nekdo prosim poradit jak mam vyparsovat ip adresu ktera se vzdy nachazi za "address=" v nasledujicim kodu?

diky ruda

Kód: Vybrat vše

#!/bin/bash

ssh_out=$(ssh -i /root/keys/ssl/id_dsa admin@1.1.1.1 /ip firewall address-list print terse where list=black_list)

IFS="\n"
for line in $ssh_out
do
        echo $line
done

Re: Parsovani v bash

Napsal: 14 Nov 2012 15:10
od ocior
Bylo by fajn sem dat ukazku toho vystupu. Co cut?

Re: Parsovani v bash

Napsal: 14 Nov 2012 15:14
od Rudolf Dvořák

Kód: Vybrat vše

 0   list=black_list address=109.110.227.250
 1   list=black_list address=208.77.208.91
 3   list=black_list address=212.195.253.156
 4   list=black_list address=212.45.25.230
 5   list=black_list address=183.62.48.57
 6   list=black_list address=83.14.83.110
 7   list=black_list address=210.16.202.1
 8   list=black_list address=184.98.103.196
 9   list=black_list address=192.168.168.1
10   list=black_list address=61.78.164.250
11   list=black_list address=211.195.225.145
12   list=black_list address=125.88.98.23
13   list=black_list address=111.74.82.33
14   list=black_list address=67.190.11.61
15   list=black_list address=189.26.255.11
16   list=black_list address=124.188.70.244
17   list=black_list address=125.88.128.5
18   list=black_list address=189.134.115.227
19   list=black_list address=63.143.57.27
20   list=black_list address=175.107.48.114
21   list=black_list address=176.9.225.170
22   list=black_list address=192.168.168.2
23   list=black_list address=218.50.2.114
24   list=black_list address=125.211.196.248
25   list=black_list address=182.243.164.158
26   list=black_list address=221.13.104.162
27   list=black_list address=177.183.46.22
28   list=black_list address=213.186.118.211
29   list=black_list address=117.21.208.26
30   list=black_list address=114.80.108.196
31   list=black_list address=31.214.43.117
32   list=black_list address=218.92.75.130

Re: Parsovani v bash

Napsal: 14 Nov 2012 15:17
od ocior

Kód: Vybrat vše

cut -d = -f 3

Re: Parsovani v bash

Napsal: 14 Nov 2012 15:54
od Rudolf Dvořák
ocior píše:

Kód: Vybrat vše

cut -d = -f 3

Diky to by slo, muzu jeste poprosit o info jak dokazat aby to v tom cyklu pridavalo query a potom je provedlo, ted mi to totiz do $ip hodi vsechny ip najednou, diky moc

Kód: Vybrat vše

#!/bin/bash

ssh_out=$(ssh -i /root/keys/aaa/id_dsa admin@aaa /ip firewall address-list print terse where list=black_list)

q=""
IFS="\n"
for line in $ssh_out
do
        ip=$(echo $line | cut -d = -f 3)
        echo $ip line
        q="$q INSERT INTO general_blacklist (ip) VALUES (\"$ip\") ON DUPLICATE KEY UPDATE ip=ip;"
done
mysql --host=10.1.16.12 --user=ruda --password=123 ip_lists <<< $q

Re: Parsovani v bash

Napsal: 14 Nov 2012 19:52
od LaCosta
Mozno prasarna :) ale tak ako priklad postaci ...

Kód: Vybrat vše

#!/bin/bash

ssh -i /root/keys/aaa/id_dsa admin@aaa /ip firewall address-list print terse where list=black_list > /tmp/sql_import
sed -i -e 's/^.*\ address=/INSERT INTO general_blacklist (ip) VALUES=/g' -e 's/$/ ON DUPLICATE KEY UPDATE ip=ip;/g' /tmp/sql_import
mysql --host=10.1.16.12 --user=ruda --password=123 ip_lists < /tmp/sql_import



Nemam to ako vyskusat, takze v pripade potreby to treba upravit (opravit) ...