[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] optional [:Terminal: Ein Terminal öffnen] [:Editor: Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://aria2.github.io/ aria2] {en} ist ein kommandozeilenbasierter [:Download-Manager:]. Es handelt sich dabei um die Weiterentwicklung des inzwischen eingestellten Programms aria. Im Gegensatz zu aria unterstützt es sowohl segmentielles Herunterladen als auch das BitTorrent-Protokoll und Metalinks. aria2 kann eine Datei von mehreren URLs oder über mehrere Verbindungen herunterladen. Während aria eine auf [:GTK:GTK+]-basierende grafische Oberfläche besaß, verfügt aria2 nur über eine Kommandozeile. Es existieren jedoch grafische Oberflächen, die mit [:Qt:] und [wikipedia:Tk_(Toolkit):Tk] umgesetzt wurden. Dadurch verbraucht aria2 weniger Ressourcen. Die physische Speicherauslastung liegt zwischen 3 MB (normale HTTP/FTP-Downloads) bis 5 MB (BitTorrent-Downloads), die CPU-Auslastung in BitTorrent bei einer Downloadgeschwindigkeit von 500 KB/s liegt bei ca. 7%. Seit der Version 0.7.1 unterstützt aria2 auch asynchrone DNS mittels c-ares oder ares. Dies verbessert die Download-Performance von segmentierten Downloads, besonders bei Metalink-Downloads. Die wichtigsten Funktionen sind: [[Vorlage(Bildunterschrift, ./webui-aria2.png, 400, "[#webui-aria2 webui-aria2]")]] * Kommandozeileninterface * lädt Dateien von HTTP/HTTPS/FTP/BitTorrent * HTTP Proxy-Unterstützung * FTP über HTTP-Proxy * unterstützt HTTP BASIC-Authentifizierung * unterstützt HTTP Proxy-Authentifizierung * segmentiertes Downloaden * Downloadgeschwindigkeitsbegrenzung * Uploadgeschwindigkeitsbegrenzung in BitTorrent * unterstützt Cookies * Cookies werden aus Dateien geladen, welche das Netspace- bzw. Mozilla-Format verwenden * läuft als [:Dienste:Dienst] * selektives Downloaden in Torrents/Metalinks mit mehreren Dateien * Unterstützung für BitTorrent fast extension * unterstützt Multitracker * unterstützt Metalink version 3.0 (HTTP/FTP/BitTorrent) * Validierung von Checksummen von Chunks und in Metalinks * segmentiertes Downloaden kann in Metalinks deaktiviert werden * netrc-Unterstützung * über Konfigurationsdatei einstellbar * lädt URIs, die in einer Textdatei oder in stdin gefunden werden, herunter * parametisierte URI-Unterstützung = Installation = Aria2 ist in den offiziellen Paketquellen enthalten [1]: {{{#!vorlage Paketinstallation aria2, universe }}} = Grafische Oberflächen = Für aria2 existieren mehrere grafische Benutzeroberflächen. Aktuell und empfohlen wird [https://wiki.ubuntuusers.de/Download-Manager/#GNOME uget]. [[Bild(./uget.png, 700)]] == webui-aria2 == Im Rahmen des [wikipedia:Google_Summer_of_Code:GSOC] ist 2012 [github:ziahamza/webui-aria2:webui-aria2] {en} entstanden. Als "Benutzeroberfläche" dient hier der vorinstallierte Webbrowser. = Benutzung = aria2 ist ein Kommandozeilenprogramm, welches über folgenden Befehl im Terminal [3] gestartet wird: {{{#!vorlage Befehl aria2c [OPTIONS] URL ... aria2c [OPTIONS] -T TORRENT_FILE FILE ... aria2c [OPTIONS] -M METALINK_FILE ... }}} == Segmentiertes Downloaden über HTTP/FTP == Eine Datei wird nach diesem Schema heruntergeladen: {{{#!vorlage Befehl aria2c http://HOST/DATEI.TYP }}} Um einen Download zu pausieren, drückt man [[Vorlage(Tasten, Ctrl+C)]]. Man kann den Transfer fortsetzen, indem man aria2c mit den selben Argumenten im selben Verzeichnis aufruft. Die URLs können nur solange geändert werden, wie sie auf die gleiche Datei zeigen. {{{#!vorlage Befehl aria2c -s 2 http://host/file.zip #lädt eine Datei über 2 Verbindungen herunter aria2c http://host1/file.zip http://host2/file.zip #lädt eine Datei von zwei verschiedenen HTTP Servern aria2c http://host1/file.zip ftp://host2/file.zip #lädt eine Datei von HTTP- und FTP-Servern aria2c -i files.txt -j 5 #lädt Dateien, die sich in einer Datei befinden }}} Der Schalter `-j` spezifiziert die Anzahl der parallelen Downloads. == Metalink-Download == {{{#!vorlage Befehl aria2c http://host/file.metalink #lädt Dateien mit einem Metalink aria2c --follow-metalink=mem http://host/file.metalink #lädt Dateien mit einem Metalink; die Metalink-Datei wird im Speicher bearbeitet aria2c -p -t 10 --lowest-speed-limit 4000 -M test.metalink #lädt mittels einer lokalen Metalink-Datei aria2c -M test.metalink dir/file1.zip dir/file2.zip #lädt nur bestimmte Dateien aus einem Metalink }}} Um die Dateinamen anzuzeigen, muss man den Schalter `-S` verwenden: {{{#!vorlage Befehl aria2c -M test.metalink --select-file 1-4,8 #lädt bestimmte Dateien mittels des Index }}} Der Index kann mit dem Schalter `-S` ausgegeben werden. == BitTorrent-Download == {{{#!vorlage Befehl aria2c -o test.torrent http://site/file.torrent #lädt Dateien von einer BitTorrent Datei aria2c --follow-torrent=mem http://site/file.torrent #lädt Dateien von einer BitTorrent-Datei, welche im Speicher bearbeitet wird aria2c --max-upload-limit 40K -T file.torrent #lädt von einer lokalen BitTorrent-Datei }}} `--max-upload-limit` spezifiziert die maximale Uploadrate. {{{#!vorlage Befehl aria2c -T test.torrent dir/file1.zip dir/file2.zip #Selektives Laden von Dateien in einem Torrent aria2c -T test.torrent --select-file 1-4,8 #Selektives Laden mithilfe des Indexes aria2c -T test.torrent --listen-port 6881-6883 #Wechsel den Listening-Port für eingehende Verbindungen aria2c -T test.torrent --max-upload-limit 100K #Uploadgeschwindigkeit begrenzen }}} {{{#!vorlage Hinweis Man muss sicherstellen, dass die Ports für eingehende bzw. ausgehenden TCP-Verkehr geöffnet sind. }}} === Programm unter bestimmten Umständen schließen === Festlegen, wann das Programm schließen soll, sobald der Torrentdownload abgeschlossen wurde. {{{#!vorlage Befehl aria2c -T test.torrent --seed-time 120 --seed-ratio 1.0 }}} Im Beispiel beendet das Programm, wenn 120 Minuten nach Abschließen des Downloads überschritten sind oder der Seed-Ratio 1.0 erreicht. === Eine bereits heruntergeladene Datei seeden === Man kann eine bereits heruntergeladene Datei mithilfe des `--check-integrity=true`-Schalters seeden: {{{#!vorlage Befehl aria2c --check-integrity=true -d /path/to/dir -T file.torrent }}} == HTTP-Features == {{{#!vorlage Befehl aria2c --load-cookies cookies.txt http://AAA.BBB.CCC/file.zip #Cookies aus Datei laden }}} {{{#!vorlage Hinweis Man kann die Cookie-Datei von Firefox bzw. Mozilla ohne jegliche Änderungen verwenden. }}} Download fortsetzen, welcher von Browsern oder anderen Programmen begonnen wurde. {{{#!vorlage Befehl aria2c -c -s 2 http://host/partiallydownloadedfile.zip #von einem anderen Programm begonnenen Download fortsetzen aria2c -M test.metalink --max-download-limit 100K #Downloadgeschwindigkeit begrenzen aria2c -M test.metalink --check-integrity=true #beschädigte Datei reparieren aria2c -M test.metalink --lowest-speed-limit 10K #Verbindung abbrechen, sobald die Downloadgeschwindigkeit einen bestimmten Wert erreicht }}} {{{#!vorlage Hinweis Die Option `--check-integrity` ist nur verfügbar, wenn man BitTorrent oder Metalinks mit Chunk-Checksummen verwendet. }}} === Parametisierte URI-Unterstützung === {{{#!vorlage Befehl aria2c -P http://{host1,host2,host3}/file.iso #Ketten von Teilen einer Datei festlegen aria2c -Z -P http://host/image[000-100].png #numerische Sequenz mittels [] festlegen aria2c -Z -P http://host/image[A-Z:2].png #Schrittzähler verwenden }}} `-Z` wird benötigt, wenn alle URIs nicht zur selben Datei zeigen (wie im zweiten Beispiel). == Konfigurationsdatei == Wenn bestimmte Optionen häufiger benutzt werden, können diese auch in die aria2-Konfigurationsdatei '''~/.aria2/aria2.conf''' eingetragen werden [4]. Jede Zeile stellt einen Parameter in der Syntax `Name=Wert` dar. Somit lassen sich alle Kommandozeilen-Optionen, die das Präfix `--` besitzen, verwenden. Zeilen, die mit einem Rautenzeichen (#) beginnen, werden als Kommentare behandelt. Beispiel: {{{ #Beispielkonfigurationsdatei für aria2c file-allocation=prealloc listen-port=60000 seed-ratio=1.0 max-upload-limit=40K ftp-pasv=true }}} Alle Kommandozeilen-Optionen können in der [:man:Manpage] von aria2c nachgelesen werden. = aria2 in Firefox integrieren = Mittels der [:Firefox/Erweiterungen:Erweiterung] FlashGot für Firefox kann man Downloads direkt aus dem Browser heraus in einem Terminal starten. Hierzu geht man nach der Installation von FlashGot im Firefox auf ''"Extras -> FlashGot -> Weitere Einstellungen"''. Dort klickt man auf ''"Hinzufügen"'' und gibt z.B. "`aria2`" ein. Anschließend muss man den Ort des gewünschten Download-Managers eingeben, hier wählt man den Ort des Terminals: {{{ /usr/bin/x-terminal-emulator }}} Unter ''"Vorlage für Parameter"'' gibt man dann den eigentlichen Befehl ein. Dabei sorgt `-e` dafür, dass der darauf folgende Befehl an das Terminal übergeben wird. Es können hier, wie oben beschrieben, Optionen an aria2 übergeben werden. Beispiel: {{{ -e aria2c -s 3 -d ~/Downloads [URL] }}} aria2 würde hier drei Verbindungen verwenden und alle Downloads in '''/home/BENUTZERNAME/Downloads''' im [:Homeverzeichnis:] speichern. `[URL]` dient als Platzhalter für FlashGot. = Links = * [https://aria2.github.io/ Projektseite] {en} * [:Download-Manager:] {Übersicht} Übersichtsartikel # tag: Internet, Shell, Download