Ընտրեք պրոքսին յուրաքանչյուր xargs աշխատանքի ներսում
Կատարեք պատահական ընտրությունը զավակ shell-ում, որպեսզի զուգահեռ curl աշխատանքներից յուրաքանչյուրը ցուցակից պրոքսի ստանա։
Տեղադրեք պատահական ընտրությունը յուրաքանչյուր աշխատանքի համար գործարկվող 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 կարգավորմանը շրջանցել ընտրված միջնորդին։ Օրինակը դեն է նետում պատասխանների մարմինները․ զուգահեռ ներբեռնումներ պահպանելիս օգտագործեք առանձին ելքային ուղիներ։