Chọn proxy bên trong mỗi công việc xargs
Chạy lựa chọn ngẫu nhiên trong shell con để mỗi công việc curl song song nhận một proxy từ danh sách.
Đặt lựa chọn ngẫu nhiên bên trong shell được khởi chạy cho mỗi công việc. Nếu mở rộng phép thay thế lệnh ở shell ngoài, giá trị sẽ được chọn trước khi xargs bắt đầu làm việc.
Với tệp proxies.txt đã kiểm tra, mỗi dòng một URL proxy, các ứng viên công khai có thể đến từ danh sách proxy miễn phí; hãy định dạng mỗi mục bằng giao thức mà curl hỗ trợ:
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 cấp một URL cho mỗi lệnh, và -P 4 cho phép tối đa bốn lệnh cùng lúc. Đầu vào phân tách bằng ký tự null giữ URL như một đối số duy nhất. Dấu gạch dưới chiếm vị trí $0 của sh, để URL ở lại trong $1.
Mỗi shell con chạy shuf một cách độc lập. Lựa chọn ngẫu nhiên có thể chọn cùng một proxy nhiều lần; đây không phải lập lịch luân phiên và cũng không bảo đảm các địa chỉ ra khác nhau.
Danh sách bỏ qua trống rỗng tường minh ngăn cấu hình no_proxy được kế thừa bỏ qua trung gian đã chọn. Ví dụ bỏ phần thân phản hồi; hãy dùng đường dẫn đầu ra riêng khi lưu các bản tải đồng thời.