Տեղադրեք պատահական ընտրությունը յուրաքանչյուր աշխատանքի համար գործարկվող shell-ի ներսում։ Արտաքին shell-ում հրամանի փոխարինման բացումը ընտրում է արժեքը նախքան xargs-ը կսկսի իր աշխատանքը։

Յուրաքանչյուր տողում մեկ պրոքսի URL պարունակող ստուգված proxies.txt-ի դեպքում հանրային թեկնածուները կարող են գալ անվճար պրոքսիների ցուցակից․ ձևավորեք յուրաքանչյուր գրառում 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-ը յուրաքանչյուր հրամանին տալիս է մեկ URL, իսկ -P 4-ը թույլ է տալիս միաժամանակ մինչև չորս հրաման։ Զրոյով բաժանված մուտքը պահպանում է URL-ը որպես մեկ արգումենտ։ Ստորագրիչը զբաղեցնում է sh-ի $0 դիրքը՝ URL-ը թողնելով $1-ում։

Յուրաքանչյուր զավակ shell ինքնուրույն է գործարկում shuf-ը։ Պատահական ընտրությունը կարող է նույն պրոքսին ընտրել մեկից ավելի անգամ․ դա հերթափոխային պլանավորում չէ և տարբեր ելքի հասցեների երաշխիք չէ։

Բացահայտ դատարկ շրջանցման ցուցակը թույլ չի տալիս ժառանգված no_proxy կարգավորմանը շրջանցել ընտրված միջնորդին։ Օրինակը դեն է նետում պատասխանների մարմինները․ զուգահեռ ներբեռնումներ պահպանելիս օգտագործեք առանձին ելքային ուղիներ։

Առնչվող հոդվածներ