xargs အလုပ်တစ်ခုချင်းစီအတွင်း ပရောက်စီကို ရွေးပါ
ကလေး shell ထဲတွင် ကျပန်းရွေးချယ်မှုကို လုပ်ဆောင်ပါ၊ ထို့ကြောင့် ပြိုင်တူ curl အလုပ်တစ်ခုစီသည် စာရင်းမှ ပရောက်စီတစ်ခု ရရှိမည်။
ကျပန်းရွေးချယ်မှုကို အလုပ်တစ်ခုစီအတွက် စတင်သော shell အတွင်း၌ ထားပါ။ အပြင် shell တွင် command substitution ကို ချဲ့ထွင်လျှင် 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 သည် command တစ်ခုစီအတွက် URL တစ်ခု ပေးသည်၊ -P 4 သည် တစ်ချိန်တည်းတွင် command လေးခုအထိ ခွင့်ပြုသည်။ သုညဖြင့် ကွဲထားသော input သည် URL ကို argument တစ်ခုအဖြစ် ထိန်းထားသည်။ အောက်မျဉ်းသည် sh ၏ $0 နေရာကို ယူပြီး URL ကို $1 တွင် ချန်ထားသည်။
ကလေး shell တစ်ခုစီသည် shuf ကို သီးခြားလုပ်ဆောင်သည်။ ကျပန်းရွေးချယ်မှုသည် တူညီသော ပရောက်စီကို တစ်ကြိမ်ထက်ပို၍ ရွေးနိုင်သည်၊ ၎င်းသည် အလှည့်ကျ အချိန်ဇယားမဟုတ်သလို မတူညီသော ထွက်ပေါက် လိပ်စာများအတွက် အာမခံချက်လည်း မဟုတ်ပါ။
ရှင်းလင်းစွာ ဗလာဖြစ်သော ကျော်လွှားမှုစာရင်းသည် အမွေဆက်ခံရသော no_proxy သတ်မှတ်ချက်က ရွေးချယ်ထားသော ကြားခံကို ကျော်လွှားခြင်းမှ တားဆီးသည်။ ဥပမာသည် တုံ့ပြန်မှုကိုယ်ထည်များကို ပစ်ပယ်သည်၊ ပြိုင်တူ ဒေါင်းလုဒ်များကို သိမ်းဆည်းသောအခါ သီးခြား output လမ်းကြောင်းများ သုံးပါ။