Vyberte proxy uvnitř každé úlohy xargs
Spouštějte náhodný výběr v podřízeném shellu, aby každá paralelní úloha curl získala proxy ze seznamu.
Umístěte náhodný výběr dovnitř shellu, který se spouští pro každou úlohu. Rozbalení substituce příkazu ve vnějším shellu vybere hodnotu dříve, než xargs začne pracovat.
S ověřeným proxies.txt s jedním URL proxy na řádek mohou veřejní kandidáti pocházet ze seznamu bezplatných proxy; každý záznam naformátujte protokolem, který 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 předá každému příkazu jedno URL a -P 4 povoluje až čtyři příkazy současně. Vstup oddělený nulami zachová URL jako jeden argument. Podtržítko zaujímá pozici $0 v sh a URL zůstává v $1.
Každý podřízený shell spouští shuf nezávisle. Náhodný výběr může zvolit stejný proxy vícekrát; nejde o kruhové plánování ani záruku různých výstupních adres.
Explicitní prázdný seznam obcházení brání tomu, aby zděděné nastavení no_proxy obešlo zvoleného prostředníka. Příklad zahazuje těla odpovědí; při ukládání souběžných stahování používejte samostatné výstupní cesty.