Ставете го случајниот избор внатре во обвивката што се стартува за секоја задача. Проширувањето на замена на команда во надворешната обвивка ја избира вредноста пред xargs да почне со работа.

Со валидиран proxies.txt со по еден URL на прокси во секој ред, јавните кандидати можат да доаѓаат од списокот со бесплатни проксија; форматирајте го секој запис со протокол што 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 да го заобиколи избраниот посредник. Примерот ги отфрла телата на одговорите; користете одделни излезни патеки кога зачувувате паралелни преземања.

Поврзани статии