Sijoita satunnainen valinta kuoreen, joka käynnistetään jokaista työtä varten. Komentokorvauksen laajentaminen ulkokuoressa valitsee arvon ennen kuin xargs aloittaa työnsä.

Kun vahvistetussa proxies.txt-tiedostossa on yksi välityspalvelimen URL rivillä, julkiset ehdokkaat voivat tulla ilmaisten välityspalvelimien luettelosta; muotoile jokainen merkintä curl-ohjelman tukemalla protokollalla:

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 antaa jokaiselle komennolle yhden URL-osoitteen ja -P 4 sallii jopa neljä komentoa kerrallaan. Nollalla erotettu syöte säilyttää URL-osoitteen yhtenä argumenttina. Alaviiva ottaa sh:n $0-paikan, jolloin URL jää kohtaan $1.

Jokainen alikuori suorittaa shuf-komennon itsenäisesti. Satunnainen valinta voi valita saman välityspalvelimen useammin kuin kerran; se ei ole vuorotteluaikataulu eikä tae eri lähtöosoitteista.

Selvästi tyhjä ohitusluettelo estää perityn no_proxy-asetuksen ohittamasta valittua välittäjää. Esimerkki hylkää vastausrungot; käytä erillisiä tulostepolkuja, kun tallennat rinnakkaisia latauksia.

Aiheeseen liittyvät artikkelit