Odaberite proxy unutar svakog xargs posla
Pokrenite slučajni odabir u podljusci kako bi svaki paralelni curl posao dobio proxy s popisa.
Smjestite slučajni odabir unutar ljuske koja se pokreće za svaki posao. Proširivanje zamjene naredbe u vanjskoj ljusci odabire vrijednost prije nego što xargs započne svoj rad.
Uz provjereni proxies.txt s jednim URL-om proxyja u svakom retku, javni kandidati mogu doći s popisa besplatnih proxyja; svaki zapis oblikujte protokolom koji curl podržava:
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 daje jedan URL svakoj naredbi, a -P 4 dopušta do četiri naredbe istodobno. Ulaz razdvojen nulama čuva URL kao jedan argument. Donja crta zauzima mjesto $0 u sh, ostavljajući URL u $1.
Svaka podljuska pokreće shuf neovisno. Slučajni odabir može odabrati isti proxy više puta; to nije kružno raspoređivanje ni jamstvo različitih izlaznih adresa.
Izričit prazan popis zaobilaženja sprječava da naslijeđena postavka no_proxy zaobiđe odabranog posrednika. Primjer odbacuje tijela odgovora; upotrijebite zasebne izlazne putanje kada spremate paralelna preuzimanja.