나는 시도 axel
에 Gufran 의 추천하지만 상당히 저를 실망. 저의 목표는 DownThemAll
CPU와 하드 디스크를 혼잡하게하고 8 코어 Mac Pro에서도 전체 시스템 속도를 늦추기 때문에 CLI 대체품을 찾는 것이 었습니다 . 또한 여러 인스턴스를 실행하는 스크립트가 아닌 wget
and curl
에 대한 멀티 스레드 대체를 원했습니다 . 그래서 나는 더 많은 것을 검색하고 지금 생각하는 것이 가장 현대적인 멀티 스레드 CLI 다운로더 인 aria2라는 것을 발견했습니다 . 내가 가진 큰 문제는 axel
SSL을 통해 파일을 다운로드하는 '가짜'였다는 것입니다. 나는 그걸로 그것을 붙 잡았다 tcdump
. https
평소와 같이 링크를 다운로드하고있었습니다http
. 그것은 정말로 나를 화나게했다. 그리고 내가 점검하지 않았다면, 나는 안전에 대한 잘못된 감각을 가지고 있었을 것이다. 많은 사람들이 이러한 심각한 보안 위반에 대해 알고 있다고 의심합니다. 로 돌아 가면 aria2
다른 다운로더보다 고급 기능입니다. HTTP (S), FTP, BitTorrent 및 Metalink 프로토콜을 지원하며 멀티 플랫폼이며 다운로드 게릴라입니다. DTA와 달리 CPU 나 하드 디스크에 부하가없는 ISP의 대역폭을 최대화합니다. 맨 페이지는 거대합니다. 나는 많은 옵션 중 몇 가지 이상을 사용하지 않을 것입니다. 그리고 BTW, SSL 성능을 확인했으며 tcdump
가짜가 아니라 견고합니다. 편리하지는 않지만 DTA의 동작을 모방 한 스크립트를 작성했습니다.
최대 대역폭을 얻는 데 사용하는 기본 명령은
aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL
-c
그것은이 중단 얻는다 경우 다운로드의 지속을 허용 -x 10
하고 -s 10
서버 당 10 개의 연결을 허용하고, -d "mydir"
디렉토리에 출력 파일 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"
다음 형식의 텍스트 파일을 읽습니다.
files.txt
:
dierctory 1
url1
url2
…
directory 2/subdirectory/sub-subdirectory/…
url3
url4
…
…
…
스크립트는 명령 행에서 파일 이름을 읽습니다.
aria2files.sh files.txt
디렉토리를 작성하고 다운로드합니다. 두 번째 예와 같이 중첩 된 디렉토리를 작성할 수 있습니다.
자세한 내용은 URL에서 텍스트 파일에 나열된 지정된 디렉토리로 파일을 다운로드하는 내 post Bash 스크립트를 참조하십시오 .