Escolle o proxy dentro de cada tarefa xargs
Executa a selección aleatoria no shell fillo para que cada tarefa curl paralela obteña un proxy da lista.
Coloca a selección aleatoria dentro do shell que se inicia para cada tarefa. Expandir unha substitución de orde no shell exterior escolle o valor antes de que xargs comece o seu traballo.
Con un proxies.txt validado cun URL de proxy por liña, os candidatos públicos poden vir da lista de proxies gratuítos; formatea cada entrada cun protocolo que curl admita:
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 entrega un URL a cada orde, e -P 4 permite ata catro ordes á vez. A entrada delimitada por nulos conserva o URL como un único argumento. O guión baixo ocupa a posición $0 de sh e deixa o URL en $1.
Cada shell fillo executa shuf de forma independente. A selección aleatoria pode escoller o mesmo proxy máis dunha vez; non é unha planificación por quendas nin unha garantía de enderezos de saída distintos.
A lista de omisión baleira explícita impide que un axuste no_proxy herdado evite o intermediario escollido. O exemplo descarta os corpos de resposta; usa rutas de saída separadas ao gardar descargas simultáneas.