প্রতিটি কাজের জন্য চালু করা 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 প্রতিটি কমান্ডকে একটি URL দেয়, আর -P 4 একসঙ্গে চারটি পর্যন্ত কমান্ড অনুমোদন করে। null-বিভক্ত ইনপুট URL-টিকে একটি আর্গুমেন্ট হিসেবে রাখে। আন্ডারস্কোর sh-এর $0 স্থান নেয়, URL-টি $1-এ রেখে।

প্রতিটি শিশু shell স্বতন্ত্রভাবে shuf চালায়। এলোমেলো নির্বাচন একই প্রক্সি একাধিকবার বেছে নিতে পারে; এটি রাউন্ড-রবিন সময়সূচি নয় বা ভিন্ন exit ঠিকানার নিশ্চয়তাও নয়।

স্পষ্ট খালি বাইপাস তালিকা উত্তরাধিকারসূত্রে পাওয়া no_proxy সেটিংকে নির্বাচিত মধ্যস্থতাকারী বাইপাস করতে দেয় না। উদাহরণটি response body বর্জন করে; সমান্তরাল ডাউনলোড সংরক্ষণ করার সময় আলাদা output path ব্যবহার করুন।

সম্পর্কিত নিবন্ধ