Belajar Wget - Batch Download & Banyak File
Episode 5 of 23

Belajar Wget - Batch Download & Banyak File

Men-download banyak file sekaligus dari sebuah daftar URL: input file dengan -i, mengatur direktori tujuan dengan -P dan -x, serta memakai nama file dari header server dengan --content-disposition.

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

Pendahuluan

Hingga episode 4, semua download kita menangani satu URL dalam satu perintah. Di dunia nyata, pekerjaan jarang serapi itu: men-download puluhan aset, mengambil semua file konfigurasi dari beberapa server, atau membuat backup kumpulan dokumen — semuanya adalah batch download. Episode ini adalah tentang bekerja massal: satu perintah untuk banyak file, dengan kendali penuh atas tempat dan nama hasilnya.

Ini seperti beda antara mengirim surat satu per satu dan menyetor semua paket ke satu ekspedisi dengan satu daftar tujuan. Wget membaca daftar tujuan itu, mengatur jalur pengirimannya, dan melaporkan hasilnya — tanpa kalian mengetik ulang satu pun URL.

Input File List: -i

Opsi -i (atau --input-file) memberi tahu wget untuk membaca daftar URL dari sebuah file — satu URL per baris. Mulailah dengan membuat daftar tujuan:

urls.txt - daftar URL, satu per baris
https://example.com/
https://example.com/robots.txt
https://example.org/
https://example.org/robots.txt
https://example.net/
https://example.net/robots.txt
https://www.example.com/
https://www.example.com/robots.txt
https://example.edu/
https://example.edu/robots.txt

Lalu jalankan batch download-nya:

Batch download dari daftar URL
wget -i urls.txt

Wget membaca setiap baris, men-download satu per satu, dan menyimpan hasilnya sesuai aturan penentuan nama yang sudah kita pelajari. Baris kosong dilewati otomatis. Wget juga menerima input dari stdin dengan -i - — berguna ketika daftar URL dihasilkan oleh perintah lain:

Daftar URL datang dari perintah lain
cat urls.txt | wget -i -

Note

Satu hal yang perlu kalian tahu: wget tidak menganggap baris yang diawali # sebagai komentar — ia akan mencoba men-download baris tersebut dan gagal dengan error parse. Simpan daftar URL kalian bersih dari baris komentar, atau letakkan daftar tersebut di file terpisah.

Menggabungkan -i dengan Opsi Lain

Kekuatan -i muncul saat digabungkan dengan opsi yang sudah kita pelajari — -c untuk resume, -P untuk direktori, -a untuk log. Semua opsi berlaku untuk setiap URL dalam daftar:

Batch download dengan resume dan log
wget -c -i urls.txt -a batch.log

Di sini -c memastikan file yang terputus dilanjutkan, dan -a batch.log mencatat seluruh riwayat dalam satu file. Ini pola standar untuk job batch yang dijalankan berulang — misalnya sinkronisasi aset harian.

Direktori Prefix: -P

Secara default, wget men-download ke direktori kerja saat ini. Untuk mengumpulkan hasil batch ke direktori khusus, gunakan -P (atau --directory-prefix):

Simpan hasil ke direktori tertentu
wget -P /tmp/downloads https://example.com/robots.txt

Wget membuat direktori tersebut jika belum ada, lalu menaruh robots.txt di dalamnya. Ini seperti menentukan "gudang tujuan" sebelum pengiriman — membuat hasil download tidak bercampur dengan file kerja lain. Kombinasikan dengan -i untuk menyalurkan seluruh batch ke satu folder:

Batch download ke direktori tujuan
wget -i urls.txt -P /tmp/downloads

Nama File dari Header: --content-disposition

Ada satu kasus di mana aturan penentuan nama dari URL gagal: URL seperti https://example.com/download?id=42 tidak mengandung nama file. Tanpa bantuan, wget menamai hasilnya download?id=42 — jelek untuk dibaca manusia dan merepotkan untuk dijadikan file.

Banyak server yang baik mengirim nama yang disarankan lewat header Content-Disposition: attachment; filename="laporan.pdf". Wget bisa memakainya dengan opsi --content-disposition:

Gunakan nama file dari header server
wget --content-disposition 'https://example.com/download?id=42'

Alih-alih download?id=42, file tersimpan sebagai laporan.pdf — persis nama yang disarankan server. Ini sangat membantu untuk download otomatis dari endpoint yang menghasilkan file dinamis.

Tip

Cek dulu apakah server mengirim header tersebut: wget -S URL akan menampilkan semua header respons. Jika ada baris Content-Disposition, --content-disposition akan bekerja; jika tidak ada, wget kembali ke penentuan nama dari URL.

Struktur Direktori: -x

Secara default, wget men-download file dengan nama saja — struktur direktori dari URL dibuang. Opsi -x (atau --force-directories) mengubah perilaku ini: wget membuat ulang struktur direktori dari path URL, termasuk nama host-nya:

Pertahankan struktur direktori URL
wget -x https://example.com/assets/img/logo.png

Hasilnya, file tersimpan di example.com/assets/img/logo.png — persis mengikuti struktur URL. Ini adalah fondasi dari mirroring yang akan kita bahas lebih dalam di episode-episode recursive download. Dengan -x, hasil download bisa langsung menjadi tiruan struktur server aslinya.

Perbedaan praktisnya:

SituasiTanpa -xDengan -x
Satu filelogo.png di direktori kerjaexample.com/assets/img/logo.png
Banyak file dari satu hostBercecer di satu direktoriRapi mengikuti struktur URL

Kombinasi yang Sering Dipakai

Berikut rangkuman pola batch download yang paling sering dipakai di production:

Batch download lengkap - resume, direktori, log
wget -c -i urls.txt -P /backup/files -a batch.log

Bacanya: lanjutkan file yang terputus (-c), ambil semua URL dari daftar (-i urls.txt), simpan ke /backup/files (-P), dan catat semuanya di batch.log (-a). Empat opsi sederhana yang bersama-sama membentuk job download andal untuk dijadwalkan di cron.

Warning

Hindari menggabungkan -O dengan batch. -O hanya masuk akal untuk satu URL — pada batch, hasilnya akan ditulis ke file yang sama dan saling menimpa. Untuk batch, gunakan -P (direktori) dan -x (struktur) sebagai pengatur lokasi, bukan -O.

Kesalahan Umum (Common Pitfalls)

  1. Meletakkan baris komentar di urls.txt. Wget mencoba men-downloadnya dan gagal. Simpan daftar URL bersih tanpa #.

  2. Menggabungkan -O dengan banyak URL. Semua hasil menimpa file yang sama. Pakai -P atau -x untuk batch.

  3. Lupa -P lalu hasil batch bercampur di direktori kerja. Tentukan gudang tujuan sejak awal.

  4. Mengharapkan --content-disposition pada server yang tidak mengirim header tersebut. Opsi ini hanya berfungsi jika header-nya ada — periksa dengan wget -S URL.

Penutup

Pada episode 5 ini kalian telah menguasai download massal: membaca daftar URL dari file dengan -i (termasuk dari stdin), menggabungkannya dengan -c dan -a untuk job batch yang andal, mengatur direktori tujuan dengan -P, memakai nama file dari header server dengan --content-disposition, serta mempertahankan struktur URL dengan -x.

Inti yang harus dibawa pulang:

  • -i FILE men-download banyak URL dari satu daftar; -i - membaca dari stdin.
  • -P DIR menentukan direktori tujuan; -x mempertahankan struktur URL.
  • --content-disposition memakai nama file dari header server.
  • -O hanya untuk satu URL; untuk batch gunakan -P dan -x.
  • Daftar URL dibersihkan dari baris komentar — wget bukan menganggapnya komentar.

Di episode 6 selanjutnya kita akan membahas FTP & file transfer — men-download dan mengunggah lewat protokol FTP, memahami perbedaannya dengan HTTP, serta praktik aman untuk transfer file antar server. Sampai jumpa di episode 6!

Belajar Wget - Batch Download & Banyak File | Belajar Wget