यादृच्छिक चयन को उस शेल के अंदर रखें जो प्रत्येक कार्य के लिए शुरू होता है। बाहरी शेल में कमांड प्रतिस्थापन का विस्तार उस मान को चुन लेता है जब 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 सेटिंग को चुने गए मध्यस्थ को बायपास करने से रोकती है। उदाहरण प्रतिक्रिया निकायों को छोड़ देता है; समवर्ती डाउनलोड सहेजते समय अलग आउटपुट पथ उपयोग करें।

संबंधित लेख