Letakkan pemilihan rawak di dalam shell yang dimulakan untuk setiap kerja. Mengembangkan penggantian arahan dalam shell luar memilih nilai itu sebelum xargs memulakan kerjanya.

Dengan proxies.txt yang disahkan mengandungi satu URL proksi setiap baris, calon awam boleh datang daripada senarai proksi percuma; format setiap entri dengan protokol yang disokong 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 memberikan satu URL kepada setiap arahan, dan -P 4 membenarkan sehingga empat arahan pada satu masa. Input yang dipisahkan sifar mengekalkan URL sebagai satu argumen. Garis bawah mengambil kedudukan $0 sh, meninggalkan URL dalam $1.

Setiap shell anak menjalankan shuf secara berasingan. Pemilihan rawak boleh memilih proksi yang sama lebih daripada sekali; ia bukan penjadualan bergilir dan bukan jaminan alamat keluar yang berbeza.

Senarai pintas kosong yang eksplisit menghalang tetapan no_proxy yang diwarisi daripada memintas perantara yang dipilih. Contoh ini membuang badan respons; gunakan laluan output berasingan apabila menyimpan muat turun serentak.

Artikel berkaitan