Menyimpan kebijakan default wget di file konfigurasi: lokasi global dan per-user, sintaks option, prioritas terhadap command line, serta eksekusi konfigurasi dinamis dengan -e saat runtime.

Di episode 7 kalian mengatur header, User-Agent, cookie, dan kredensial satu per satu di setiap perintah. Itu melelahkan dan rawan salah ketik — apalagi jika opsi yang sama harus diulang di puluhan command. Solusinya adalah wgetrc: file konfigurasi yang dibaca wget secara otomatis setiap kali dijalankan, tempat kalian menyimpan default yang konsisten.
Bayangkan wgetrc seperti meja kerja yang sudah dirapikan: alih-alih menyusun peralatan setiap kali mulai bekerja, semuanya sudah ada di tempatnya dan kalian tinggal memakai. Begitu kalian memahami wgetrc, perintah wget kalian menjadi jauh lebih pendek karena bagian yang berulang sudah dipindahkan ke satu tempat.
Wget membaca konfigurasi dari dua file, dengan cakupan berbeda:
/etc/wgetrc — konfigurasi global, berlaku untuk semua pengguna di mesin. Biasanya dikelola admin sistem untuk menetapkan kebijakan organisasi.~/.wgetrc — konfigurasi per-user, berlaku hanya untuk user yang bersangkutan. Ini file yang paling sering kalian sentuh.Keduanya dibaca saat wget dimulai, dan nilai dari ~/.wgetrc menimpa nilai dari /etc/wgetrc untuk opsi yang sama. Pola ini mirip konfigurasi berlapis: kebijakan dasar di global, penyesuaian pribadi di per-user.
Format file wgetrc sederhana: satu baris berisi satu opsi dengan pola option = value. Nama opsi sama dengan opsi panjang di command line, tetapi tanpa tanda strip di depan — dan wget tidak peka terhadap huruf besar, garis bawah, maupun tanda hubung, sehingga user_agent dan user-agent sama-sama valid.
# Identitas dan kebijakan akses
user_agent = "devvnull-bot/1.0"
tries = 5
timeout = 30
# Proxy korporat - nilai default semua request
http_proxy = "http://proxy.corp:8080"
https_proxy = "http://proxy.corp:8080"
no_proxy = "localhost,127.0.0.1"
# Perilaku download
continue = on
dot_style = binaryBaris yang diawali # adalah komentar. Nilai boolean ditulis on atau off — misalnya continue = on setara dengan flag -c di command line, dan continue = off mengembalikannya. Dengan file di atas, setiap perintah wget otomatis memakai timeout 30 detik, mencoba ulang lima kali, dan meneruskan download yang terputus — tanpa mengetik opsi apa pun.
Lalu apa yang terjadi jika opsi yang sama muncul di beberapa tempat? Wget menerapkan urutan prioritas yang tegas, dari yang paling kuat:
-e / --execute — perintah konfigurasi di command line, dijalankan setelah wgetrc sehingga menimpa file.~/.wgetrc — konfigurasi per-user./etc/wgetrc — konfigurasi global.Maksudnya sederhana: wgetrc adalah jaring pengaman, bukan penjara. Jika ~/.wgetrc menetapkan tries = 5, menulis --tries 10 di command line akan mengalahkannya untuk perintah itu saja — wget --tries 10 URL tetap sah dan nilai wgetrc tidak perlu diubah. Aturan ini harus selalu kalian ingat saat men-debug mengapa wget berperilaku "aneh" — sering kali penyebabnya ada di file konfigurasi yang nilainya tidak terlihat.
-eTidak semua konfigurasi layak disimpan permanen. Untuk mengubah satu nilai hanya untuk satu perintah — tanpa menyentuh file — gunakan opsi -e yang mengeksekusi perintah konfigurasi seperti baris wgetrc:
wget -e robots=off -e tries=3 -r http://docs.example.com/guide/Setiap -e menerima satu perintah option = value. Karena perintah ini dijalankan setelah wgetrc dibaca, -e menjadi alat yang tepat untuk override sekali pakai: mengubah tingkat verbose, mematikan proxy untuk satu download — misalnya wget -e use_proxy=off URL — atau menambah batas retry tanpa mengubah konfigurasi permanen. Pola ini juga berguna dalam script, di mana kalian tidak ingin mengotori file konfigurasi milik user.
Inilah penerapan praktis wgetrc: tempat menetapkan kebijakan default yang konsisten untuk mesin kerja atau server. Tiga yang paling sering ditaruh di sini adalah proxy, User-Agent, dan jumlah retry.
# Kebijakan akses jaringan
use_proxy = on
http_proxy = "http://proxy.corp:8080"
https_proxy = "http://proxy.corp:8080"
no_proxy = "localhost,127.0.0.1,*.internal.example.com"
# Identitas bot - sertakan kontak untuk admin server
user_agent = "devvnull-bot/1.0 (+https://example.com/contact)"
# Keandalan download
tries = 8
waitretry = 5
retry_connrefused = on
continue = onDengan kebijakan di atas, semua wget di mesin tersebut otomatis melewati proxy korporat, memperkenalkan diri sebagai bot yang bisa dihubungi, dan bersikap sabar terhadap koneksi yang tidak stabil. Nilai yang berubah-ubah antar lingkungan tetap ditulis di command line; yang sifatnya menetap pindah ke sini.
Important
Perhatikan perbedaan tanggung jawab: /etc/wgetrc memengaruhi semua user — perubahan di sana berdampak sistemik, jadi urusannya adalah kebijakan organisasi. ~/.wgetrc hanya memengaruhi kalian, dan cocok untuk preferensi pribadi seperti dot style atau batas retry. Jangan sembarangan mengubah file global tanpa memahami konsekuensinya bagi user lain.
Opsi yang menerima daftar, seperti -X (exclude directories), bersifat kumulatif: nilai dari wgetrc tetap aktif sampai kalian membersihkannya. Wget menyediakan cara eksplisit untuk mengosongkan nilai langsung dari command line — dengan menulis daftar kosong:
wget -X "" -X /cgi-bin,/~nobody http://example.com/Baris -X "" membuang semua nilai exclude yang diwarisi dari wgetrc, dan -X berikutnya menetapkan daftar baru. Pola yang sama berlaku untuk -A, -R, dan -I — berguna saat konfigurasi global menetapkan pengecualian yang tidak diinginkan untuk satu perintah tertentu.
Saat wget berperilaku di luar dugaan, langkah debug tercepat adalah mengisolasi variabelnya. Dengan hierarki prioritas dari bagian sebelumnya, kalian tinggal menelusuri asal nilai: command line, -e, atau file konfigurasi. Untuk melihat detail negosiasi yang terjadi, opsi -d (debug) menampilkan header request, respons server, dan keputusan yang diambil wget.
Tip
Kebiasaan yang menyelamatkan: jika sebuah perintah berperilaku aneh hanya di satu mesin, bandingkan dengan wget --debug URL di mesin tersebut. Perbedaan perilaku antar mesin hampir selalu menunjuk ke perbedaan isi ~/.wgetrc atau /etc/wgetrc — bukan ke wget-nya sendiri.
Episode 8 mengajarkan kalian merapikan wget: dua lokasi konfigurasi (/etc/wgetrc global dan ~/.wgetrc per-user), sintaks option = value dengan boolean on/off, hierarki prioritas dari command line hingga default bawaan, eksekusi dinamis dengan -e untuk override sekali pakai, dan pola menaruh kebijakan default seperti proxy, User-Agent, serta retry di wgetrc.
Yang paling penting untuk dibawa pulang: wgetrc menghilangkan flag berulang, dan command line tetap menjadi hak tertinggi. Keduanya bekerja sama — file konfigurasi untuk default, command line untuk pengecualian.
Di episode 9 berikutnya kita masuk ke fitur paling ikonik sekaligus paling berbahaya dari wget: recursive download untuk merangkak di dalam situs, pengendalian kedalaman, penghormatan terhadap robots.txt, dan mode spider untuk memeriksa ketersediaan link tanpa mengunduh konten. Sampai jumpa!