ھەر بىر 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 تەڭشىكىنىڭ تاللانغان ۋاسىتىچىدىن ئۆتۈپ كېتىشىنى توسىدۇ. مىسال جاۋاب گەۋدىسىنى تاشلايدۇ؛ بىر ۋاقىتتىكى چۈشۈرۈشلەرنى ساقلىغاندا ئايرىم چىقىش يوللىرىنى ئىشلىتىڭ.