Proxy seçimini hər xargs işinin içində edin
Təsadüfi seçimi alt shell-də aparın ki, paralel curl işlərinin hər biri siyahıdan proxy götürsün.
Təsadüfi seçimi hər iş üçün işə salınan shell-in içində yerləşdirin. Xarici shell-də əmr əvəzləməsini genişləndirmək dəyəri xargs işə başlamazdan əvvəl seçir.
Hər sətirdə bir proxy URL olan yoxlanılmış proxies.txt ilə açıq namizədlər pulsuz proxy siyahısından gələ bilər; hər yazını curl-un dəstəklədiyi protokolla formatlayın:
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 hər əmrə bir URL verir, -P 4 isə eyni anda dörd əmrdən çoxuna icazə vermir. Null ilə ayrılmış giriş URL-i bir arqument kimi saxlayır. Alt xətt sh-nin $0 yerini tutur və URL-i $1-də qoyur.
Hər alt shell shuf-u müstəqil işlədir. Təsadüfi seçim eyni proxy-ni birdən çox dəfə seçə bilər; bu növbəli planlaşdırma deyil və fərqli çıxış ünvanları zəmanəti vermir.
Açıq boş keçmə siyahısı miras alınan no_proxy parametrinin seçilmiş vasitəçini keçməsinin qarşısını alır. Nümunə cavab gövdələrini atır; paralel yükləmələri saxlayarkən ayrı çıxış yolları istifadə edin.