Tôi đã thử axel
theo lời giới thiệu của Gufran nhưng nó làm tôi thất vọng vô cùng. Mục tiêu của tôi là tìm một sự thay thế CLI DownThemAll
vì nó tích trữ CPU và đĩa cứng và làm chậm toàn bộ hệ thống ngay cả trên Mac Pro 8 lõi. Tôi cũng muốn có một sự thay thế đa luồng cho wget
và curl
, không phải là một tập lệnh nào đó chạy nhiều phiên bản này. Vì vậy, tôi đã tìm kiếm thêm và tìm thấy những gì tôi nghĩ ngay bây giờ là trình tải xuống CLI đa luồng hiện đại nhất cuối cùng có - aria2 . Vấn đề lớn mà tôi gặp phải axel
là nó 'giả mạo' tải xuống các tệp qua SSL. Tôi bắt nó làm điều đó với tcdump
. Nó đã được tải xuống https
liên kết như bình thườnghttp
. Điều đó thực sự làm tôi bực mình và nếu tôi không kiểm tra, tôi sẽ có cảm giác an toàn sai lầm. Tôi nghi ngờ rằng nhiều người biết về vi phạm nghiêm trọng này trong an ninh. Quay trở lại aria2
, nó tiên tiến hơn bất kỳ trình tải xuống nào khác. Nó hỗ trợ các giao thức HTTP (S), FTP, BitTorrent và Metalink, là đa nền tảng và là một du kích tải xuống. Nó tối đa hóa băng thông ISP của tôi mà không tải CPU hoặc đĩa cứng, không giống như DTA. Trang người đàn ông là khổng lồ. Tôi sẽ không bao giờ sử dụng nhiều hơn một vài trong số nhiều lựa chọn của nó. Và oh, BTW, tôi đã kiểm tra hiệu suất SSL của nó tcdump
và nó là vững chắc, không giả mạo. Tôi đã viết một kịch bản bắt chước hành vi của DTA, nếu không phải là sự thuận tiện.
Lệnh cơ bản tôi sử dụng để có băng thông tối đa là
aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL
-c
cho phép tiếp tục tải xuống nếu nó bị gián đoạn -x 10
và -s 10
cho phép tối đa 10 kết nối trên mỗi máy chủ và -d "mydir"
xuất tệp vào thư mục mydir
.
aria2files.sh
:
#!/bin/bash
filename="$1" # get filename from command line argument
while read -r line
do
if [ "$line" ] # skip blank lines
then
if [[ "$line" =~ (https?|ftp)\:\/\/ ]] # line contains a URL, download file
then
echo "URL: '$line'"
aria2c --file-allocation=none -c -x 10 -s 10 -d "$currdir" "$line"
else # line contains a directory name, create directory if not already present
echo "Directory: '$line'"
currdir="$line"
if [ ! -d "$currdir" ]
then
mkdir -p "$currdir" # '-p' enables creation of nested directories in one command
fi
fi
fi
done < "$filename"
Nó đọc một tệp văn bản có định dạng:
files.txt
:
dierctory 1
url1
url2
…
directory 2/subdirectory/sub-subdirectory/…
url3
url4
…
…
…
Kịch bản đọc tên tệp từ dòng lệnh:
aria2files.sh files.txt
Nó tạo ra các thư mục và tải về cho họ. Nó có thể tạo các thư mục lồng nhau như trong ví dụ thứ hai.
Để biết thêm chi tiết, hãy xem tập lệnh Bash của tôi để tải các tệp từ URL đến các thư mục được chỉ định được liệt kê trong tệp văn bản .