Izaberite proxy unutar svakog xargs posla
Pokrenite slučajni izbor u podljusci kako bi svaki paralelni curl posao dobio proxy sa liste.
Smestite slučajni izbor unutar ljuske koja se pokreće za svaki posao. Proširivanje zamene naredbe u spoljnoj ljusci bira vrednost pre nego što xargs započne svoj rad.
Uz provereni proxies.txt sa jednim URL-om proxyja u svakom redu, javni kandidati mogu doći sa liste 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 dozvoljava do četiri naredbe istovremeno. Ulaz razdvojen nulama čuva URL kao jedan argument. Donja crta zauzima mesto $0 u sh, ostavljajući URL u $1.
Svaka podljuska pokreće shuf nezavisno. Slučajni izbor može izabrati isti proxy više puta; to nije kružno raspoređivanje ni garancija različitih izlaznih adresa.
Izričito prazna lista zaobilaženja sprečava da nasleđeno podešavanje no_proxy zaobiđe izabranog posrednika. Primer odbacuje tela odgovora; koristite odvojene izlazne putanje kada čuvate paralelna preuzimanja.