Postavite naključno izbiro v lupino, ki se zažene za vsako nalogo. Če zamenjavo ukaza razširite v zunanji lupini, se vrednost izbere, preden xargs začne svoje delo.

S preverjenim proxies.txt z enim URL-jem proxy v vsaki vrstici lahko javni kandidati prihajajo s seznama brezplačnih proxyjev; vsak vnos oblikujte s protokolom, ki ga curl podpira:

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 vsakemu ukazu poda en URL, -P 4 pa dovoli do štiri ukaze hkrati. Vnos, ločen z ničlami, ohrani URL kot en argument. Podčrtaj zasede položaj $0 v sh, URL pa ostane v $1.

Vsaka podrejena lupina samostojno izvaja shuf. Naključna izbira lahko izbere isti proxy večkrat; to ni krožno razporejanje in ni zagotovilo različnih izhodnih naslovov.

Izrecno prazen seznam zaobidenja prepreči, da bi podedovana nastavitev no_proxy zaobšla izbranega posrednika. Primer zavrže telesa odgovorov; pri shranjevanju sočasnih prenosov uporabite ločene izhodne poti.

Sorodni članki