Zgjidhni proxy-n brenda çdo detyre xargs
Ekzekutoni zgjedhjen e rastësishme në shell-in fëmijë që çdo detyrë paralele curl të marrë një proxy nga lista.
Vendosni zgjedhjen e rastësishme brenda shell-it që niset për çdo detyrë. Zgjerimi i një zëvendësimi komande në shell-in e jashtëm e zgjedh vlerën përpara se xargs të fillojë punën.
Me një proxies.txt të vlefshëm me një URL proxy në çdo rresht, kandidatët publikë mund të vijnë nga lista e proxy-ve falas; formatoni çdo hyrje me një protokoll që curl mbështet:
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 i jep një URL çdo komande, dhe -P 4 lejon deri në katër komanda njëkohësisht. Hyrja e ndarë me zero e ruan URL-në si një argument të vetëm. Nënvizimi zë pozicionin $0 të sh, duke e lënë URL-në në $1.
Çdo shell fëmijë ekzekuton shuf në mënyrë të pavarur. Zgjedhja e rastësishme mund të zgjedhë të njëjtin proxy më shumë se një herë; nuk është planifikim rrethor dhe as garanci për adresa dalëse të ndryshme.
Lista e anashkalimit plotësisht bosh parandalon që një konfigurim no_proxy i trashëguar të anashkalojë ndërmjetësin e zgjedhur. Shembulli hedh poshtë trupat e përgjigjeve; përdorni shtigje të veçanta dalëse kur ruani shkarkime të njëkohshme.