Vælg proxyen inde i hvert xargs-job
Kør det tilfældige valg i barneskallen, så hvert parallelt curl-job får en proxy fra listen.
Placer det tilfældige valg inde i den skal, der startes for hvert job. Udvidelse af en kommandosubstitution i den ydre skal vælger værdien, før xargs begynder sit arbejde.
Med en valideret proxies.txt med én proxy-URL pr. linje kan offentlige kandidater komme fra listen over gratis proxyer; formatér hver post med en protokol, som curl understøtter:
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 giver én URL til hver kommando, og -P 4 tillader op til fire kommandoer ad gangen. Nul-adskilt input bevarer URL'en som ét argument. Understregningen indtager sh's $0-position og lader URL'en blive i $1.
Hver barneskal kører shuf uafhængigt. Det tilfældige valg kan vælge den samme proxy flere gange; det er ikke rundkørselsplanlægning eller en garanti for forskellige udgangsadresser.
Den udtrykkeligt tomme omgåelsesliste forhindrer en nedarvet no_proxy-indstilling i at omgå den valgte mellemmand. Eksemplet kasserer svarlegemer; brug separate outputstier, når samtidige downloads gemmes.