Escolha o proxy dentro de cada trabalho xargs
Execute a seleção aleatória no shell filho para que cada trabalho curl paralelo obtenha um proxy da lista.
Coloque a seleção aleatória dentro do shell iniciado para cada trabalho. Expandir uma substituição de comando no shell externo escolhe o valor antes de o xargs começar o seu trabalho.
Com um proxies.txt validado contendo um URL de proxy por linha, os candidatos públicos podem vir da lista de proxies gratuitos; formate cada entrada com um protocolo suportado pelo curl:
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 fornece um URL a cada comando, e -P 4 permite até quatro comandos ao mesmo tempo. A entrada delimitada por nulos mantém o URL como um único argumento. O sublinhado ocupa a posição $0 do sh, deixando o URL em $1.
Cada shell filho executa o shuf de forma independente. A seleção aleatória pode escolher o mesmo proxy mais de uma vez; não é um escalonamento circular nem uma garantia de endereços de saída diferentes.
A lista de exclusão vazia explícita impede que uma definição no_proxy herdada contorne o intermediário escolhido. O exemplo descarta os corpos das respostas; use caminhos de saída separados ao guardar transferências simultâneas.