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.

Artigos relacionados