ప్రతి xargs పని లోపల ప్రాక్సీని ఎంచుకోండి
చైల్డ్ షెల్లో యాదృచ్ఛిక ఎంపికను అమలు చేయండి, తద్వారా ప్రతి సమాంతర curl పని జాబితా నుండి ప్రాక్సీని పొందుతుంది.
ప్రతి పని కోసం ప్రారంభమయ్యే షెల్ లోపల యాదృచ్ఛిక ఎంపికను ఉంచండి. బయటి షెల్లో కమాండ్ ప్రత్యామ్నాయాన్ని విస్తరించినప్పుడు 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 లో ఉంచుతుంది.
ప్రతి చైల్డ్ షెల్ shuf ను స్వతంత్రంగా నడుపుతుంది. యాదృచ్ఛిక ఎంపిక అదే ప్రాక్సీని ఒకటి కంటే ఎక్కువసార్లు ఎంచుకోవచ్చు; ఇది చక్రీయ షెడ్యూలింగ్ కాదు, వేర్వేరు నిష్క్రమణ చిరునామాలకు హామీ కూడా కాదు.
స్పష్టంగా ఖాళీ బైపాస్ జాబితా వారసత్వంగా వచ్చిన no_proxy సెట్టింగ్ ఎంచుకున్న మధ్యవర్తిని బైపాస్ చేయకుండా నిరోధిస్తుంది. ఉదాహరణ ప్రతిస్పందన బాడీలను విస్మరిస్తుంది; ఏకకాల డౌన్లోడ్లను సేవ్ చేసేటప్పుడు వేర్వేరు అవుట్పుట్ మార్గాలను ఉపయోగించండి.