Pune selecția aleatorie în shell-ul pornit pentru fiecare sarcină. Extinderea unei substituții de comandă în shell-ul exterior alege valoarea înainte ca xargs să înceapă lucrul.

Cu un proxies.txt validat care conține un URL de proxy pe fiecare linie, candidații publici pot veni din lista de proxy-uri gratuite; formatează fiecare intrare cu un protocol acceptat de 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 oferă un URL fiecărei comenzi, iar -P 4 permite până la patru comenzi simultan. Intrarea delimitată cu zerouri păstrează URL-ul ca un singur argument. Linia de jos ocupă poziția $0 a lui sh, lăsând URL-ul în $1.

Fiecare shell copil rulează shuf independent. Selecția aleatorie poate alege același proxy de mai multe ori; nu este o planificare circulară și nici o garanție a unor adrese de ieșire diferite.

Lista de ocolire goală explicită împiedică o setare no_proxy moștenită să ocolească intermediarul ales. Exemplul aruncă corpurile răspunsurilor; folosește căi de ieșire separate când salvezi descărcări simultane.

Articole similare