Elektu la prokuron ene de ĉiu xargs-tasko
Rulu la hazardan elekton en la infana ŝelo, por ke ĉiu paralela curl-tasko ricevu prokuron el la listo.
Metu la hazardan elekton ene de la ŝelo lanĉata por ĉiu tasko. Etendi komandan anstataŭigon en la ekstera ŝelo elektas la valoron antaŭ ol xargs komencas sian laboron.
Kun validigita proxies.txt kun unu prokura URL en ĉiu linio, publikaj kandidatoj povas veni el la senpaga prokura listo; formatu ĉiun eron per protokolo subtenata de curl:
printf '%s\0' 'https://a.example/one' 'https://b.example/two' |
xargs -0 -n 1 -P 4 sh -c '
proxy=$(shuf -n 1 proxies.txt) || exit 1
[ -n "$proxy" ] || exit 1
curl --fail --silent --show-error --max-time 30 \
--proxy "$proxy" --noproxy "" --output /dev/null "$1"
' _
-n 1 donas unu URL al ĉiu komando, kaj -P 4 permesas ĝis kvar komandojn samtempe. La nul-apartigita enigo konservas la URL kiel unu argumenton. La substreko okupas la pozicion $0 de sh, lasante la URL en $1.
Ĉiu infana ŝelo rulas shuf sendepende. La hazarda elekto povas elekti la saman prokuron pli ol unufoje; ĝi ne estas ronda planado nek garantio de malsamaj eliraj adresoj.
La eksplicite malplena preterpaslisto malhelpas ke heredita no_proxy-agordo preterpasu la elektitan peranton. La ekzemplo forĵetas respondkorpojn; uzu apartajn eligajn vojojn kiam konservi samtempajn elŝutojn.