본문 바로가기

IT

우분투에서 파일 다운로드를 빠르게 해보자

반응형

웹사이트나 FTP 등에서 파일을 다운로드 받아야 하는데, 세월아 네월아 하면서 느린 경우가 있습니다.


이럴때는 미안하긴 하지만 다중접속(multi-connection) 으로 다운로드 속도를 개선해 볼 수 있습니다.

(서버가 지원하는 경우에 한합니다.)


우분투의 앱에는 다운로더로 사용할 수 있는 CLI 기반 앱들이 정말 많은데요. 그 중에서 이번에 소개할 앱은 aria2c 라는 앱입니다.


우분투에서 man 명령어를 사용하여 메뉴얼을 확인해보면, NAME : The ultra fast download utility 라고 되어 있습니다. 자신감이 대단하죠?


다음은 영문 설명입니다.


aria2 is a utility for downloading files.

The supported protocols are HTTP(S), FTP, SFTP, BitTorrent, and Met‐alink. aria2 can download a file from multiple sources/protocols and tries to utilize  your  maximum  download bandwidth.

It  supports  downloading a file from HTTP(S)/FTP /SFTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP/SFTP is uploaded to the BitTorrent swarm.

Using  Metalink  chunk  checksums, aria2 automatically validates chunks of data while downloading a file.


블라블라 말이 많은데 일단 번역기를 돌려봅니다.;;


aria2는 파일을 다운로드하는 유틸리티입니다.

지원되는 프로토콜은 HTTP (S), FTP, SFTP, BitTorrent 및 Met-alink입니다.

aria2는 여러 소스 / 프로토콜에서 파일을 다운로드 할 수 있으며 최대 다운로드 대역폭을 활용하려고 시도합니다.

HTTP (S) / FTP / SFTP에서 다운로드 한 데이터를 BitTorrent swarm에 업로드하는 동시에 HTTP (S) / FTP / SFTP와 BitTorrent에서 파일을 동시에 다운로드 할 수 있습니다.

Metalink 청크 체크섬을 사용하여 파일을 다운로드하는 동안 aria2는 자동으로 데이터 청크의 유효성을 검사합니다.


수많은 옵션을 제공하고, torrent 클라이언트를 대신하는 등, 다재다능한 역할을 하기도 합니다. 멋집니다.



다른 것에는 관심이 없고, 하나의 파일을 다중접속하여 빠른 속도를 내는 것이 목적입니다.


2개의 옵션을 제공합니다.



하나는 -x 옵션입니다. 일단 설명을 볼께요.


Usage:
 -x, --max-connection-per-server=NUM

The maximum number of connections to one server for each download.

Possible Values: 1-16
Default: 1
Tags: #basic, #http, #ftp


aria2c -x 2 <FileLink> 식으로 명령어를 실행하면 1개의 서버에 2개의 연결된 것 마냥 각각 다운로드를 시도합니다. 원하던 기능입니다.


하지만 최대 다중 접속수는 16까지만 설정할 수 있네요. 기본값은 서버당 1개의 연결만 사용합니다.



다른 하나는 -s 옵션입니다. 이것도 설명을 볼께요.


Usage:
 -s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URLs are used for backup. If less than N URIs are given, those URLs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by the --max-connection-per-server option. See also the --min-split-size option.

Possible Values: 1-*
Default: 5
Tags: #basic, #http, #ftp


설명이 길지만 아마도 분산 서비스로 파일을 내려받을 수 있는 서버에서 파일 주소에 해당하는 URI 가 여러개가 주어지면 그것을 기반으로 파일을 분할하여 다운로드를 시도하는 것으로 풀이됩니다. (혹시 해석이 잘못되었다면 알려주세요.;;;) 파일을 분할? 하여 받을 수 있는 수는 1개부터 N 개까지 원하는 숫자로 나누어 받을 수 있습니다. 이 기능 또한 서버에서 지원하지 않으면 뭐.. 그냥 받는게 낫겠죠?



위에서 알아본 2개의 옵션을 사용하여 간단히 다운로드를 시도해보세요. 예를 들어 우분투 배포판 ISO 파일을 다운로드 받아야 하는데, cdimage.ubuntu.com 에서 받을 수 있는 주소를 알고 있다고 합시다.. 그렇다면 명령어는 다음과 같이 입력하겠지요?


$ aria2c -x 4 -s 4 https://cdimage.ubuntu.com/current/ubuntu_amd64.iso


위에 입력한 주소는 정확한 주소이므로 다운로드되지 않습니다. 사용법을 알려드리기 위해서 작성해 본 것입니다.


간혹 정말 미친듯이 빠르게 받아지는 서버도 있으니까요. 생각날 때 한번씩 써보는 것도 좋을 것 같습니다.


아! 우분투에 해당 어플리케이션이 기본 설치되지 않습니다. apt 명령어를 실행해서 설치할  수 있습니다.


$ sudo apt install aria2


끝.


반응형