webstor
Goto Top

Bitte um Denkanstoss für Split

Hi,

ich steh gerade total auf dem Schlauch und drehe mich im Kreis.
Folgendes Script liest eine URL und Domain Liste ein:
#/bin/bash
import_ip=<IPv4  Adress>
#adv_urls=`cat /test/BL/adv/urls | awk '{print "<member>"$0"</member>"}'` 
#adv_ips=`cat /test/BL/adv/domains  | awk '{match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}' | awk 'NF > 0' | awk '{print "<member>"$0"</member>"}'` 
adv_domains=`cat /test/BL/adv/domains  | awk '!match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)' | awk '{print "*." $0}' |  awk '{print "<member>"$0"</member>"}' `  
#cat /test/BL/adv/domains  | awk '!match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)' | awk '{print "*." $0}' |  awk '{print "<member>"$0"</member>"}' > /test/adv_domains 
curl -k -d key=LUFRPT0xdDNteml5Ky9LSzIzT0d2Rms5M3hUMlRnYkU9RnRMc1hIYmp2TVF0MW51RHB6MDJPZUxyaHExM0JBVnkzRHVneXprL04wVT0= --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/profiles/custom-url-category/entry[@name='Test_Custom_URL2']/list" -d 'type=config' -d 'action=set' --data-urlencode "element=$adv_domains" https://"$import_ip"/api/  

Jetzt bin ich aber mit 3500 Elementen für den Import limitiert.

Zwischenstep via Txt and dann via loop?

Danke vorab für einen Denkanstoss.

LG

Content-ID: 368387

Url: https://administrator.de/contentid/368387

Ausgedruckt am: 24.11.2024 um 19:11 Uhr

BassFishFox
BassFishFox 16.03.2018 um 19:00:34 Uhr
Goto Top
Hallo,

Kannst Du mal bitte Deinen Code in Code-Tags setzen? Geht ueber das Symbol </> im Editor.
Ist ja grausam zu lesen.

Danke
BFF
webstor
webstor 17.03.2018 aktualisiert um 20:50:57 Uhr
Goto Top
Formatierung angepasst.
colinardo
colinardo 18.03.2018 aktualisiert um 18:25:46 Uhr
Goto Top
Servus @webstor .
Z.B. so:
#!/bin/bash
import_ip=<IPv4  Adress>
# groeße des Batches
setcount=3500
# Function sendet die Daten die ihr als Parameter übergeben werden
function SendData {
        curl -k -d key=LUFRPT0xdDNteml5Ky9LSzIzT0d2Rms5M3hUMlRnYkU9RnRMc1hIYmp2TVF0MW51RHB6MDJPZUxyaHExM0JBVnkzRHVneXprL04wVT0= --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/profiles/custom-url-category/entry[@name='Test_Custom_URL2']/list" -d 'type=config' -d 'action=set' --data-urlencode "element=$1" https://"$import_ip"/api/  
}
# Daten extrahieren
adv_domains=$(cat /test/BL/adv/domains  | awk '!match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)' | awk '{print "*." $0}' |  awk '{print "<member>"$0"</member>"}' )  
# Anzahl der Zeilen ermitteln
num=$(echo "$adv_domains" | wc -l)  
# Für jeden Batch die Anzahl Zeilen an Funktion übergeben
for x in $(seq 1 $(($num / $setcount))) ;do
        SendData "$(echo "$adv_domains" | sed -ne "$(($x * $setcount + 1)),+$(($setcount - 1))p")"  
done
Grüße Uwe