Ausführen von I for-Schleife in einem Gnu parallel verwenden möchte, um eine Funktion in einem Bash-Skript exec und ich bin um herauszufinden, nicht in der Lage, wie von der Info ich online einsehen. Zum Beispiel:eines for-Schleife mit Gnu parallel
#!/bin/bash
get_racks(){
query that outputs a list of racks
}
get_hosts() {
query that outputs a list of hosts by rack(passed as param to the func)
}
get_gw() {
query that outputs a list of gateways
}
check_ping() {
HOSTS=(`get_hosts`)
COUNTER=0
while [ $COUNTER -lt $SIZE ] ; do
ssh $HOSTS "ping -c 5 ${GATEWAYS[$COUNTER]} " ;
COUNTER=$((COUNTER+1)) ;
done
}
RACKS=(`get_racks`)
HOSTS=(`get_hosts`)
GWS=(`get_gw`)
SIZE=${#GWS[@]}
COUNTER=0
for rack in ${RACKS[@]}; do
parallel check_ping | tee output.txt
done
Ich möchte das auszuführen, für Schleifen und was parallel geschieht im Inneren, während die Anzahl der gleichzeitig Arbeitsplätze und Ausgabe alles in einer einzigen Datei zu steuern. Die letzte Datei sollte alle Daten enthalten, die die Funktion zurückgibt, und auch auf stdout drucken. Außerdem hat die check_ping einen Teil zu einer entfernten Maschine von sshing und GW Pingen, ist dieser Teil mit einem benutzerdefinierten Befehl ssh tatsächlich parallel geschieht, werden wir, dass ssh auf alle Hosts in der Anordnung parallel und Pings einen GW haben.
Dank viel
Sagt, dass es Befehl RUN_COMMANDS nicht finden kann. –
Hoppla, ein Leerzeichen hier 'RUN_COMMANDS() {' –
Leider dies ein Syntaxfehler in meinem Pseudo-Code war, war der eigentliche Code in Ordnung. Ich bekomme immer noch diesen Fehler –