ضع الاختيار العشوائي داخل الصدفة التي تُشغَّل لكل مهمة. توسيع استبدال الأمر في الصدفة الخارجية يختار القيمة قبل أن يبدأ xargs عمله.

مع ملف 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 كوسيط واحد. تشغل الشرطة السفلية موضع $0 في sh، تاركةً عنوان URL في $1.

تشغّل كل صدفة فرعية shuf بشكل مستقل. قد يختار الاختيار العشوائي الوسيط نفسه أكثر من مرة؛ فهو ليس جدولة دورية ولا ضمانًا لاختلاف عناوين الخروج.

قائمة التجاوز الفارغة الصريحة تمنع إعداد no_proxy الموروث من تجاوز الوسيط المختار. يتجاهل المثال أجسام الاستجابات؛ استخدم مسارات إخراج منفصلة عند حفظ تنزيلات متزامنة.

مقالات ذات صلة