Chagua proksi ndani ya kila kazi ya xargs
Endesha uteuzi wa nasibu katika shell mtoto ili kila kazi ya curl sambamba ipate proksi kutoka kwenye orodha.
Weka uteuzi wa nasibu ndani ya shell inayoanzishwa kwa kila kazi. Kupanua ubadilishaji wa amri katika shell ya nje huchagua thamani kabla xargs haijaanza kazi yake.
Ukiwa na proxies.txt iliyothibitishwa yenye URL moja ya proksi kwa kila mstari, wagombea wa umma wanaweza kutoka kwenye orodha ya proksi za bure; umbiza kila ingizo kwa itifaki ambayo curl inaunga mkono:
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 hutoa URL moja kwa kila amri, na -P 4 huruhusu hadi amri nne kwa wakati mmoja. Ingizo lililotenganishwa kwa sifuri huhifadhi URL kama hoja moja. Mstari wa chini huchukua nafasi ya $0 ya sh, ukiacha URL katika $1.
Kila shell mtoto huendesha shuf kwa kujitegemea. Uteuzi wa nasibu unaweza kuchagua proksi hiyo hiyo zaidi ya mara moja; hii si upangaji wa mzunguko wala uhakikisho wa anwani za kutoka tofauti.
Orodha tupu ya kupita kwa uwazi huzuia mpangilio wa no_proxy uliorithiwa usipite mpatanishi aliyechaguliwa. Mfano hutupa miili ya majibu; tumia njia tofauti za pato unapohifadhi upakuaji wa wakati mmoja.