Vel proxyen inne i kvar xargs-jobb
Køyr det tilfeldige valet i barneskalet slik at kvar parallell curl-jobb får ein proxy frå lista.
Set det tilfeldige valet inne i skalet som blir starta for kvar jobb. Utvidar du ei kommandoutskifting i det ytre skalet, blir verdien vald før xargs byrjar arbeidet sitt.
Med ein validert proxies.txt med éin proxy-URL per linje kan offentlege kandidatar kome frå lista over gratis proxyar; formater kvar oppføring med ein protokoll som curl støttar:
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 gjev éin URL til kvar kommando, og -P 4 tillèt opptil fire kommandoar samstundes. Inndata skilde med null beheld URL-en som eitt argument. Understreken tek $0-posisjonen til sh og lèt URL-en bli i $1.
Kvart barneskal køyrer shuf sjølvstendig. Det tilfeldige valet kan velje same proxy meir enn éin gong; det er ikkje rundgangsplanlegging og inga garanti for ulike utgangsadresser.
Den uttrykkeleg tomme omgåingslista hindrar ei nedarva no_proxy-innstilling i å omgå den valde mellommannen. Dømet kastar svarlekamane; bruk separate utdatastiar når du lagrar samtidige nedlastingar.