ഓരോ xargs ജോലിക്കുള്ളിൽ പ്രോക്സി തിരഞ്ഞെടുക്കുക
ചൈൽഡ് ഷെല്ലിൽ റാൻഡം തിരഞ്ഞെടുപ്പ് പ്രവർത്തിപ്പിക്കുക, അങ്ങനെ സമാന്തര curl ജോലികൾ ഓരോന്നും ലിസ്റ്റിൽ നിന്ന് പ്രോക്സി നേടും.
ഓരോ ജോലിക്കും ആരംഭിക്കുന്ന ഷെല്ലിനുള്ളിൽ റാൻഡം തിരഞ്ഞെടുപ്പ് വയ്ക്കുക. പുറം ഷെല്ലിൽ കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ വികസിപ്പിക്കുമ്പോൾ 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 ൽ അവശേഷിക്കുന്നു.
ഓരോ ചൈൽഡ് ഷെല്ലും shuf സ്വതന്ത്രമായി പ്രവർത്തിപ്പിക്കുന്നു. റാൻഡം തിരഞ്ഞെടുപ്പ് ഒരേ പ്രോക്സി ഒന്നിലധികം തവണ തിരഞ്ഞെടുത്തേക്കാം; ഇത് ചാക്രിക ഷെഡ്യൂളിംഗ് അല്ല, വ്യത്യസ്ത എക്സിറ്റ് വിലാസങ്ങളുടെ ഉറപ്പുമല്ല.
വ്യക്തമായി ശൂന്യമായ ബൈപാസ് ലിസ്റ്റ്, പാരമ്പര്യമായി ലഭിച്ച no_proxy ക്രമീകരണം തിരഞ്ഞെടുത്ത ഇടനിലക്കാരനെ ഒഴിവാക്കുന്നത് തടയുന്നു. ഉദാഹരണം പ്രതികരണ ബോഡികൾ ഉപേക്ഷിക്കുന്നു; ഒരേസമയം ഡൗൺലോഡുകൾ സംരക്ഷിക്കുമ്പോൾ വേറിട്ട ഔട്ട്പുട്ട് പാതകൾ ഉപയോഗിക്കുക.