Belajar Aria2 - Batch Download & Input File
Episode 6 of 23

Belajar Aria2 - Batch Download & Input File

Pada episode ini kalian mengunduh banyak URL sekaligus dari satu file teks dengan opsi -i, memahami format per-baris lengkap dengan opsi per-URL dan komentar, serta mengelola antrean download besar menggunakan max-concurrent-downloads.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 5 kalian sudah memecah satu file menjadi beberapa koneksi paralel dan melanjutkan download yang terputus dengan --continue. Sampai di situ, satu perintah masih berarti satu file. Padahal kebutuhan nyata di lapangan jarang sesederhana itu: kalian punya 50 file ISO dari mirror staging, 30 paket dataset, atau 100 arsip log yang harus ditarik sekaligus. Menjalankan perintah satu per satu adalah pemborosan waktu dan rawan salah. Episode ini memperkenalkan mode batch aria2 — mengunduh banyak URL dari satu file teks, mengatur opsi per-URL, sampai mengelola antrean puluhan bahkan ratusan download dalam satu proses.

Kenapa ini penting? Karena dalam otomasi, banyak hal sekaligus adalah keadaan normal, bukan pengecualian. aria2 didesain sebagai download manager, bukan sekadar klien: ia menerima daftar pekerjaan, menjalankan sebagian secara paralel, lalu menyelesaikan sisanya secara berurutan. Justru kemampuan itulah yang membedakan aria2 dari wget atau curl.

Mengunduh Banyak URL dengan Input File

Inti mode batch adalah opsi -i alias --input-file. Daripada menulis URL di argumen perintah, kalian taruh semua URL dalam satu file teks — satu baris satu URL — lalu beri path file tersebut ke aria2.

Linuxurls.txt
https://cdn.example.com/linux.iso
https://cdn.example.com/tools.zip
https://cdn.example.com/docs.tar.gz
jalankan-batch.sh
aria2c -i urls.txt -d /tmp/downloads

Satu perintah, tiga file. aria2 membaca setiap baris sebagai satu download item dan mengerjakan semuanya dalam satu proses yang sama. Satu detail yang sering menjebak: URL di dalam input file tidak boleh dibungkus tanda kutip. Berbeda dengan di shell, isi file ini dibaca mentah oleh aria2 — kutipan justru dianggap bagian dari URL dan download pun gagal.

Tip

Input file juga bisa dibaca dari stdin dengan aria2c -i -. Ini memungkinkan kalian menyusun daftar URL lewat pipeline, misalnya grep '\.iso$' daftar.txt | aria2c -i - — kombinasi yang sangat berguna di script.

Format Per Baris dan Opsi Per-URL

Input file bukan sekadar daftar URL. Formatnya punya tiga fitur: satu baris untuk satu entitas file, beberapa URL mirror dalam baris yang sama, dan baris opsi khusus yang mengikuti sebuah URL.

Linuxurls-multi-source.txt
https://cdn1.example.com/file.iso	https://cdn2.example.com/file.iso
  split=8
https://cdn1.example.com/backup.tar.gz
  dir=/data/backup
  out=backup-2026.tar.gz

Penjelasan baris demi baris:

  • Beberapa URL dalam satu baris — dipisahkan karakter TAB (tekan tombol Tab) — berarti URL-URL itu adalah mirror dari file yang sama. aria2 memakainya secara paralel, persis fitur multi-source di episode 5.
  • Baris opsi — dimulai dengan spasi atau TAB dan berisi satu opsi per baris — berlaku untuk URL di atasnya. Di sini split=8 memaksa delapan koneksi untuk file ISO, sementara dir= dan out= mengatur tujuan file backup.
  • Nama file lokal dikendalikan out=. Berguna saat nama di server tidak deskriptif, misalnya URL panjang dengan parameter disimpan sebagai out=rilis.zip.

Perlu dicatat, opsi dir pada baris opsi bersifat per-URL, sedangkan -d di command line bersifat global. Yang lebih spesifik selalu menang.

Komentar untuk Mendokumentasikan Antrean

Baris yang dimulai dengan # dianggap komentar dan dilewati. Manfaatnya bukan hanya kosmetik — daftar download yang panjang tanpa label akan sulit dipelihara, apalagi jika dikerjakan bergantian oleh beberapa orang dalam tim.

Linuxurls-terkomentar.txt
# ISO sistem operasi - mirror lokal
https://mirror.local/ubuntu.iso	https://mirror.backup/ubuntu.iso
 
# Paket tooling versi terbaru
https://cdn.example.com/go.tar.gz
https://cdn.example.com/node.tar.gz

Antrean Download: Urutan dan Paralelisme

Ketika file berisi banyak URL, aria2 menciptakan sebuah antrean. Secara default ia menjalankan hingga lima item sekaligus — nilai dari --max-concurrent-downloads — dan sisanya menunggu di antrean. Item yang selesai keluar dari antrean, lalu item berikutnya masuk menggantikan.

Bayangkan sebuah supermarket dengan beberapa kasir. --max-concurrent-downloads adalah jumlah kasir yang buka; daftar URL adalah antrean pembelinya. Mengatur nilai ini artinya mengendalikan berapa banyak download berjalan bersamaan tanpa membuat semuanya rebutan bandwidth. Set ke 2 untuk download tenang di koneksi kecil, set ke 10 untuk menarik banyak file sekaligus di server bervolume tinggi.

kuatkan-enam-sekaligus.sh
aria2c -i urls.txt -j 6 -x 4 -d /tmp/downloads

Jangan rancu dengan opsi -x (--max-connection-per-server) di episode 5: -x mengatur koneksi di dalam satu file, sedangkan -j mengatur jumlah file yang diproses bersamaan. Keduanya bekerja pada lapisan berbeda dan saling melengkapi.

Mengelola Antrean Besar

Semakin besar antrean, semakin penting beberapa pengaturan berikut:

  • --deferred-input=true — aria2 tidak lagi membaca seluruh isi input file di awal, melainkan per item saat dibutuhkan. Ini menghemat memori saat antrean berisi ratusan ribu URL: aria2c -i urls.txt --deferred-input=true.
  • --max-download-result=<NUM> — membatasi berapa banyak riwayat hasil download yang disimpan dalam memori setelah selesai. Berguna agar proses batch yang sangat panjang tidak menumpuk memori.
  • --save-session=<FILE> — menyimpan status semua download (termasuk yang masih berjalan) ke sebuah file. Di sesi berikutnya, jalankan aria2c -i session.txt dan antrean melanjutkan dari posisi terakhir — seperti --continue tetapi untuk seluruh antrean.

Kombinasi --save-session dan --deferred-input sangat direkomendasikan untuk job download besar yang berjalan semalaman atau direstart berkala.

Satu pengingat tambahan: daftar opsi yang sah untuk input file cukup panjang — bahkan continue=true bisa menjadi baris opsi per-URL untuk memastikan tiap item di-resume bila terputus. Daftar lengkapnya bisa dibaca di dokumentasi resmi aria2 pada bagian Input File.

Menghasilkan Daftar URL dari Perintah Lain

Input file tidak harus diketik manual. Karena bentuknya teks polos, daftar URL bisa lahir dari perintah lain — dan di sinilah batch download menjadi benar-benar kuat. Contoh sederhana: kalian punya daftar nama arsip dan ingin menyusun URL-nya secara terprogram.

buat-daftar.sh
ls /data/backup/*.tar.gz | \
  sed 's#^#https://cdn.example.com/backup/#' > daftar-untuk-unduh.txt
aria2c -i daftar-untuk-unduh.txt -j 3

Skrip semacam ini bisa ditanam di cron untuk sinkronisasi berkala: daftar dibuat, diunduh, dan hanya file yang benar yang ikut masuk. Kombinasikan dengan --continue dan --save-session, dan kalian memiliki pipeline sinkronisasi yang bisa dijalankan ulang tanpa takut kehilangan progres.

Tip

Karena input file dibaca mentah tanpa ekspansi shell, jangan gunakan karakter khusus seperti $ atau tanda kutip di dalamnya. Jika URL mengandung karakter yang biasa di-escape di shell, tulis apa adanya — itulah yang diharapkan aria2.

Penutup

Pada episode 6 ini kalian sudah naik level dari klien satu-file menjadi download manager batch: membaca daftar URL dari input file dengan -i, memanfaatkan format per-baris dengan mirror dan opsi per-URL, mendokumentasikan antrean lewat komentar, membatasi paralelisme dengan --max-concurrent-downloads, dan mengelola antrean besar dengan --deferred-input serta --save-session.

Yang paling penting untuk dibawa pulang: input file mengubah cara berpikir tentang download — dari perintah menjadi data. Daftar URL kini bisa dibuat, dipelihara, dan diproses seperti data biasa: digenerate, difilter, dan diantrekan secara otomatis.

Di episode 7 berikutnya kita berpindah protokol — dari HTTP ke FTP dan SFTP: autentikasi, download direktori, serta perbedaan perilaku keduanya. Sampai jumpa!

Belajar Aria2 - Batch Download & Input File | Belajar Aria2