Vyberte proxy v rámci každej úlohy xargs
Spúšťajte náhodný výber v podriadenom shelli, aby každá paralelná úloha curl získala proxy zo zoznamu.
Umiestnite náhodný výber dovnútra shellu, ktorý sa spúšťa pre každú úlohu. Rozbalenie substitúcie príkazu vo vonkajšom shelli vyberie hodnotu skôr, než xargs začne pracovať.
S overeným proxies.txt s jedným URL proxy na riadok môžu verejní kandidáti pochádzať zo zoznamu bezplatných proxy; každú položku naformátujte protokolom, ktorý curl podporuje:
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 odovzdá každému príkazu jedno URL a -P 4 povoľuje až štyri príkazy súčasne. Vstup oddelený nulami zachová URL ako jeden argument. Podčiarknik zaberá pozíciu $0 v sh, pričom URL zostáva v $1.
Každý podriadený shell spúšťa shuf nezávisle. Náhodný výber môže vybrať rovnaký proxy viackrát; nejde o kruhové plánovanie ani záruku rôznych výstupných adries.
Explicitne prázdny zoznam obchádzania bráni tomu, aby zdedené nastavenie no_proxy obišlo zvoleného sprostredkovateľa. Príklad zahadzuje telá odpovedí; pri ukladaní súbežných sťahovaní používajte samostatné výstupné cesty.