Ар бир 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 жөндөөсүнүн тандалган ортомчуну айланып өтүүсүнө жол бербейт. Мисал жооп денелерин таштайт; параллель жүктөөлөрдү сактоодо өзүнчө чыгуу жолдорун колдонуңуз.