Download File Secara Paralel Menggunakan xargs dan Bash

calendar_today
schedule 2 min read

Mempercepat Unduhanmu dengan xargs dan Bash

Holla, bro! Pernahkah kamu merasa kesel dengan kecepatan download yang ala kadarnya? Apalagi kalau kamu punya daftar URL yang panjang dan harus didownload semuanya. Nungguin satu per satu itu nggak asik, kan? Nah, di sini gue punya trik buat ngebutin proses download tersebut dengan menggunakan xargs dan Bash. Gue akan kasih contoh yang super gampang diikutin, bahkan buat kamu yang masih baru di dunia command line.

Apa itu xargs?

xargs itu tuh command line yang bisa ngebantu kita ngejalanin perintah dengan argumen yang banyak. Biasanya, xargs dipake buat ngeproses output dari suatu perintah dan ngoperasikannya ke perintah lainnya. Dalam kasus kita, xargs akan ngebantu nge-download semua URL yang ada di dalam file secara paralel, artinya beberapa URL didownload secara bersamaan.

Bagaimana Caranya?

Pertama-tama, kita butuh file yang berisi daftar URL yang mau didownload. Misalnya, kita punya file bernama urls.txt yang berisi:

code
https://contoh.com/file1.zip
https://contoh.com/file2.zip
https://contoh.com/file3.zip
https://contoh.com/file4.zip

Gampang kan? Sekarang, kita akan menggunakan perintah xargs untuk mengunduh semua file tersebut secara paralel. Kita akan menggunakan wget sebagai alat download.

code
xargs -P 4 -n 1 wget -q < urls.txt

Penjelasan:

  • -P 4: Opsi ini untuk menentukan jumlah proses paralel. Di contoh ini, kita menggunakan 4 proses, artinya ada 4 unduhan yang berjalan bersamaan.
  • -n 1: Ini artinya setiap baris dalam urls.txt akan dijadikan argumen untuk perintah wget.
  • wget -q: wget adalah perintah untuk mengunduh file, dan -q agar proses unduhan tidak menampilkan output yang berlebihan (quiet mode).
  • < urls.txt: Mengarahkan isi file urls.txt ke xargs.

Dengan perintah di atas, xargs akan membaca setiap URL dari urls.txt dan menjalankan perintah wget -q [URL] sebanyak 4 proses bersamaan.

Bonus: Pakai curl Kalau Kamu Lebih Suka

Kalau kamu lebih familiar dengan curl, bisa juga diganti dengan perintah ini:

code
xargs -P 4 -n 1 curl -O < urls.txt

Penjelasan:

  • curl -O: curl juga punya kemampuan untuk download file, dan -O artinya simpan dengan nama yang sama dengan yang ada di server.
  • Sisanya sama seperti contoh sebelumnya.

Dengan trik ini, kamu bisa mempercepat proses download kamu tanpa harus nunggu satu per satu. Tinggal nentuin jumlah proses paralel yang diinginkan, siapin file URL, dan let the magic happen. Enjoy your faster downloads, bro! 🚀🔥

A

Written by Ariful

Full-stack engineer obsessed with web performance.