Denedim axel
üzerine Gufran 'ın önerisi ama o derece beni hayal kırıklığına uğrattı. Amacım, CLI'nin yerini DownThemAll
almaktı çünkü CPU'yu ve sabit diskini kapatıyor ve 8 çekirdekli bir Mac Pro'da bile tüm sistemi yavaşlatıyordu. Ben de bir çok iş parçacıklı değiştirme istedik wget
ve curl
bu birden çok örneğini çalıştıran bir betik bazı kludge. Bu yüzden daha fazla araştırdım ve şu anda düşündüğüm şeyi buldum: en modern çok iş parçacıklı CLI indiricisi var - aria2 . Karşılaştığım en büyük sorun axel
, SSL üzerinden dosya indirirken 'sahte' olmasıydı. Bunu yaparken yakaladım tcdump
. Bu indirme oldu https
sıradan olarak bağlantılarıhttp
. Bu beni gerçekten sinirlendirdi ve kontrol etmeseydim, yanlış bir güvenlik hissim olurdu. Pek çok insanın güvenlikteki bu ciddi ihlalden haberdar olduğunu sanmıyorum. Geri dönersek aria2
, diğer tüm indiricilere göre daha gelişmiş. HTTP (S), FTP, BitTorrent ve Metalink protokollerini destekliyor, çoklu platform ve bir indirme gerillası. ISS'imin bant genişliğini, DTA'nın aksine CPU veya sabit disk üzerinde herhangi bir yük olmadan maksimuma çıkarır. Erkek sayfası devasa. Asla birçok seçeneğinden daha fazlasını kullanmayacağım. Ve ah, BTW, SSL performansını kontrol ettim ve tcdump
sağlam, sahte değil. DTA'nın davranışını taklit eden, uygun olmasa da bir senaryo yazdım.
Maksimum bant genişliği elde etmek için kullandığım temel komut
aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL
-c
o kesintiye alır eğer indirmek devamını verir -x 10
ve -s 10
sunucu başına 10 adete kadar bağlantıya izin verir ve -d "mydir"
dizine çıkışlar dosya 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"
Biçimin bir metin dosyasını okur:
files.txt
:
dierctory 1
url1
url2
…
directory 2/subdirectory/sub-subdirectory/…
url3
url4
…
…
…
Komut dosyası, dosya adını komut satırından okur:
aria2files.sh files.txt
Dizinleri oluşturur ve bunlara indirir. İkinci örnekte gösterildiği gibi iç içe dizinler oluşturabilir.
Daha fazla ayrıntı için , URL'lerden bir metin dosyasında listelenen belirli dizinlere dosya indirmek için Bash sonrası komut dosyama bakın .