ਹਰ xargs ਕੰਮ ਦੇ ਅੰਦਰ ਪ੍ਰੌਕਸੀ ਚੁਣੋ
ਬੱਚਾ shell ਵਿੱਚ ਬੇਤਰਤੀਬ ਚੋਣ ਚਲਾਓ ਤਾਂ ਜੋ ਹਰ ਸਮਾਂਤਰ curl ਕੰਮ ਨੂੰ ਸੂਚੀ ਵਿੱਚੋਂ ਪ੍ਰੌਕਸੀ ਮਿਲੇ।
ਹਰ ਕੰਮ ਲਈ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ shell ਦੇ ਅੰਦਰ ਬੇਤਰਤੀਬ ਚੋਣ ਰੱਖੋ। ਬਾਹਰੀ shell ਵਿੱਚ ਕਮਾਂਡ ਬਦਲੀ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਨਾਲ 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 ਵਿੱਚ ਛੱਡਦਾ ਹੈ।
ਹਰ ਬੱਚਾ shell shuf ਨੂੰ ਸੁਤੰਤਰ ਰੂਪ ਵਿੱਚ ਚਲਾਉਂਦਾ ਹੈ। ਬੇਤਰਤੀਬ ਚੋਣ ਇੱਕੋ ਪ੍ਰੌਕਸੀ ਨੂੰ ਇੱਕ ਤੋਂ ਵੱਧ ਵਾਰ ਚੁਣ ਸਕਦੀ ਹੈ; ਇਹ ਵਾਰੀ-ਬਦਲੀ ਸ਼ਡਿਊਲਿੰਗ ਨਹੀਂ ਹੈ ਅਤੇ ਵੱਖਰੇ ਐਗਜ਼ਿਟ ਪਤੇ ਦੀ ਗਾਰੰਟੀ ਵੀ ਨਹੀਂ।
ਸਪੱਸ਼ਟ ਖਾਲੀ ਬਾਈਪਾਸ ਸੂਚੀ ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲੀ no_proxy ਸੈਟਿੰਗ ਨੂੰ ਚੁਣੇ ਹੋਏ ਵਿਚੋਲੇ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਜਵਾਬ ਦੇ ਮੁੱਖ ਹਿੱਸੇ ਸੁੱਟ ਦਿੰਦੀ ਹੈ; ਇੱਕੋ ਸਮੇਂ ਡਾਊਨਲੋਡ ਸੰਭਾਲਦੇ ਸਮੇਂ ਵੱਖਰੇ ਆਉਟਪੁੱਟ ਰਾਹ ਵਰਤੋ।