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-Key: 368387

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

Printed on: April 29, 2024 at 01:04 o'clock

Member: BassFishFox
BassFishFox Mar 16, 2018 at 18:00:34 (UTC)
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
Member: webstor
webstor Mar 17, 2018 updated at 19:50:57 (UTC)
Goto Top
Formatierung angepasst.
Member: colinardo
colinardo Mar 18, 2018 updated at 17:25:46 (UTC)
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