Τοποθετήστε την τυχαία επιλογή μέσα στο shell που ξεκινά για κάθε εργασία. Η επέκταση μιας αντικατάστασης εντολής στο εξωτερικό shell επιλέγει την τιμή πριν το xargs αρχίσει τη δουλειά του.

Με ένα επικυρωμένο proxies.txt με ένα URL proxy ανά γραμμή, οι δημόσιοι υποψήφιοι μπορούν να προέρχονται από τη λίστα δωρεάν proxy· μορφοποιήστε κάθε καταχώριση με πρωτόκολλο που υποστηρίζει το 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.

Κάθε θυγατρικό shell εκτελεί το shuf ανεξάρτητα. Η τυχαία επιλογή μπορεί να διαλέξει το ίδιο proxy περισσότερες από μία φορές· δεν είναι κυκλικός προγραμματισμός ούτε εγγύηση για διαφορετικές διευθύνσεις εξόδου.

Η ρητά κενή λίστα παράκαμψης εμποδίζει μια κληρονομημένη ρύθμιση no_proxy να παρακάμψει τον επιλεγμένο μεσάζοντα. Το παράδειγμα απορρίπτει τα σώματα αποκρίσεων· χρησιμοποιήστε ξεχωριστές διαδρομές εξόδου όταν αποθηκεύετε ταυτόχρονες λήψεις.

Σχετικά άρθρα