Wget adalah baris perintah, utilitas sumber terbuka untuk mengunduh file dan halaman web dari internet. Itu mendapat data dari internet dan menampilkannya di terminal Anda atau menyimpannya ke file. Utilitas wget tidak interaktif. Anda dapat memaksimalkannya melalui skrip atau bahkan menjadwalkan unduhan file.
Biasanya, browser web seperti Firefox atau Chromium juga mengunduh file kecuali, secara default, mereka membuat informasi dalam jendela grafis dan mengharuskan pengguna untuk berinteraksi dengannya. Atau, pengguna sistem Linux lainnya menggunakan perintah curl untuk mentransfer data dari server jaringan.
Artikel tersebut mengilustrasikan cara menggunakan perintah wget untuk mengunduh halaman web dan file dari internet.
Menginstal wget di Linux
Untuk menginstal wget pada sistem Linux berbasis Ubuntu/Debian:
$ apt-get install wget
Untuk menginstal Wget di Red Hat/CentOS:
$ yum install wget
Untuk menginstal wget di Fedora:
$ dnf install wget
Mengunduh file dengan perintah wget
Anda dapat mengunduh file dengan wget dengan memberikan tautan khusus ke URL. Jika default URL Anda ke index.html, maka halaman indeks diunduh. Secara default, konten diunduh ke file dengan nama file yang sama di direktori kerja Anda saat ini. Perintah wget juga menyediakan beberapa opsi untuk menyalurkan output ke less atau tail.
[#####@fedora ~]$ wget http://example.com | tail -n 6 --2021-11-09 12:06:02-- http://example.com/ Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946 Connecting to example.com (example.com)|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1256 (1.2K) [text/html] Saving to: ‘index.html.1’ index.html.1 100%[======================>] 1.23K --.-KB/s in 0s 2021-11-09 12:06:03 (49.7 MB/s) - ‘index.html.1’ saved [1256/1256]
Mengirim data yang diunduh ke keluaran standar
Anda dapat menggunakan -output-document dengan tanda hubung – karakter untuk mengirim data yang Anda unduh ke output standar.
[#######@fedora ~]$ wget http://example.com --output-document - | head -n8 --2021-11-09 12:17:11-- http://example.com/ Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946 Connecting to example.com (example.com)|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1256 (1.2K) [text/html] Saving to: ‘STDOUT’ <!doctype html> 0%[ ] 0 --.-KB/s <html> <head> <title>Example Domain</title> <meta charset="utf-8" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - 100%[======================>] 1.23K --.-KB/s in 0s 2021-11-09 12:17:12 (63.5 MB/s) - written to stdout [1256/1256]
Menyimpan unduhan dengan nama file yang berbeda
Anda dapat menggunakan opsi –output-document atau -O untuk menentukan nama file keluaran yang berbeda untuk unduhan Anda.
$ wget http://fosslinux.com --output-document foo.html $ wget http://fosslinux.com -O foofoofoo.html
Mengunduh urutan file
Wget dapat mengunduh beberapa file jika Anda mengetahui lokasi dan pola nama file dari file tersebut. Anda dapat menggunakan sintaks Bash untuk menentukan rentang bilangan bulat untuk mewakili urutan nama file dari awal hingga akhir.
$ wget http://fosslinux.com/filename_{1..7}.webp
Mengunduh banyak halaman dan file
Anda dapat mengunduh banyak file dengan perintah wget dengan menentukan semua URL yang berisi file yang akan diunduh.
$ wget URL1 URL2 URL3
Melanjutkan unduhan sebagian
Jika Anda mengunduh file besar, mungkin ada gangguan pada unduhan. Wget dapat menentukan di mana unduhan Anda berhenti sebelum melanjutkan dengan unduhan sebagian. Ini berguna jika Anda mengunduh file besar seperti distro Fedora 35 Linux ISO. Untuk melanjutkan unduhan, gunakan opsi –lanjutkan atau -c.
$ wget --continue https://fosslinux.com/foss-linux-distro.iso
Mengelola unduhan rekursif dengan perintah wget
Gunakan opsi –recursive atau -r untuk Mengaktifkan unduhan rekursif dengan perintah wget. Mode rekursif wget merayapi URL situs yang disediakan dan mengikuti semua tautan hingga default atau tingkat kedalaman maksimum yang ditentukan.
$ wget -r fosslinux.com
Secara default, kedalaman unduhan rekursif maksimum adalah 5. Namun, wget menyediakan opsi -l untuk menentukan kedalaman rekursi maksimum Anda.
$ wget -r -l 11 fosslinux.com
Anda dapat menentukan rekursi tak terbatas dengan opsi '-l 0'. Misalnya, wget akan mengunduh semua file di situs web jika Anda menyetel kedalaman maksimum ke nol (-l 0).
Mengonversi tautan untuk penayangan lokal
–convert-links adalah opsi wget penting lainnya yang mengonversi tautan agar sesuai untuk tampilan lokal.
$ wget -r l 3 --convert-links fosslinux.com
Mengunduh Jenis File Tertentu
Anda dapat menggunakan opsi -A dengan perintah wget untuk mengunduh jenis file tertentu selama unduhan rekursif. Misalnya, gunakan perintah wget berikut untuk mengunduh file pdf dari situs web.
$ wget -A '*.pdf -r fosslinux.com
Perhatikan bahwa tingkat kedalaman pengambilan maksimum rekursif dibatasi hingga 5 secara default.
Mengunduh File Dari Server FTP
Perintah wget dapat berguna saat Anda perlu mengunduh file dari Server FTP.
$ wget --ftp-user=username --ftp-password=password ftp://192.168.1.13/foofoo.pdf
Pada contoh di atas, wget akan mengunduh 'foofoo.pdf' dari Server FTP yang terletak di 192.168.1.10.
Anda juga dapat menggunakan opsi -r rekursif dengan protokol FTP untuk mengunduh file FTP secara rekursif.
$ wget -r --ftp-user=username --ftp-password=pass ftp://192.168.1.13/
Menyetel ukuran unduhan maksimal dengan perintah wget
Anda dapat mengatur ukuran unduhan maksimum selama pengambilan file rekursif menggunakan opsi flag –quota. Anda dapat menentukan ukuran unduhan dalam byte (default), kilobyte (akhiran k), atau megabita (akhiran m). Proses pengunduhan akan dibatalkan jika batasnya terlampaui.
$ wget -r --quota=1024m fosslinux.com
Perhatikan bahwa kuota unduhan tidak memengaruhi pengunduhan satu file.
Menyetel batas kecepatan unduhan dengan perintah wget
Anda juga dapat menggunakan opsi flag wget –limit-rate untuk membatasi kecepatan unduhan saat mengunduh file. Misalnya, perintah berikut akan mengunduh file 'foofoo.tar.gz' dan membatasi kecepatan unduh hingga 256KB/s.
$ wget --limit-rate=256k URL/ foofoo.tar.gz
Perhatikan bahwa Anda dapat menyatakan kecepatan unduhan yang diinginkan dalam byte (tanpa akhiran), kilobyte (menggunakan akhiran k), atau megabita (menggunakan akhiran m).
Mencerminkan situs web dengan perintah wget
Anda dapat mengunduh atau mencerminkan seluruh situs, termasuk struktur direktorinya dengan opsi –mirror. Mencerminkan situs mirip dengan unduhan rekursif tanpa tingkat kedalaman maksimum. Anda juga dapat menggunakan opsi –recursive –level inf –timestamping –no-remove-listing, yang berarti rekursif tanpa batas.
Anda juga dapat menggunakan wget untuk mengarsipkan situs dengan opsi –no-cookies –page-conditions –convert-links. Ini akan mengunduh halaman lengkap dan memastikan bahwa salinan situs lengkap dan mirip dengan situs aslinya.
$ wget --mirror --convert-links fosslinux.com $ wget -recursive --level inf --timestamping –no-remove-listing
Perhatikan bahwa mengarsipkan situs akan mengunduh banyak data, terutama jika situs tersebut sudah lama.
Membaca URL dari file teks
Perintah wget dapat membaca banyak URL dari file teks menggunakan opsi -i. File teks masukan dapat berisi beberapa URL, tetapi setiap URL harus dimulai dengan baris baru.
$ wget -i URLS.txt
Memperluas URL yang dipersingkat
Anda dapat menggunakan opsi wget –max-redirect untuk melihat URL yang dipersingkat sebelum Anda berkunjung. URL yang dipersingkat sangat penting untuk media cetak atau di jejaring sosial dengan batas karakter. Selain itu, URL yang dipersingkat juga dapat mencurigakan karena tujuannya disembunyikan secara default.
Catatan:Praktik yang lebih baik melibatkan penggabungan opsi –head dan –location untuk melihat header HTTP dan mengungkap tujuan URL final. Ini memungkinkan Anda mengintip ke URL yang dipersingkat tanpa memuat sumber daya lengkap.
[######@fedora ~]$ wget --max-redirect 0 https://t.co/GVr5v9554B?amp=1 --2021-11-10 16:22:08-- https://t.co/GVr5v9554B?amp=1 Resolving t.co (t.co)... 104.244.42.133, 104.244.42.69, 104.244.42.5, ... Connecting to t.co (t.co)|104.244.42.133|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://bit.ly/ [following] 0 redirections exceeded.
Catatan:Tujuan yang dimaksud ditampilkan pada jalur keluaran yang dimulai dengan lokasi.
Memodifikasi header HTML
Informasi header HTTP adalah salah satu informasi metadata yang tertanam dalam paket yang dikirim komputer untuk berkomunikasi selama pertukaran data. Misalnya, setiap kali Anda mengunjungi situs web, browser Anda mengirimkan header permintaan HTTP. Anda dapat menggunakan opsi –debug untuk menampilkan informasi header yang dikirim wget ke browser Anda untuk setiap permintaan.
[#####@fedora ~]$ wget --debug fosslinux.com DEBUG output created by Wget 1.21.1 on linux-gnu. ---request begin--- GET / HTTP/1.1 User-Agent: Wget/1.21.1 Accept: */* Accept-Encoding: identity Host: fosslinux.com Connection: Keep-Alive ---request end--- HTTP request sent, awaiting response... ---response begin---
Melihat header respons dengan perintah wget
Anda dapat menggunakan opsi –debug untuk melihat informasi header respons dalam respons balasan.
[#####@fedora ~]$ wget --debug fosslinux.com ….. ---request end--- HTTP request sent, awaiting response... ---response begin--- HTTP/1.1 200 OK Server: nginx Date: Wed, 10 Nov 2021 13:36:29 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding X-Cache: HIT ---response end--- 200 OK
Menanggapi kode respons 301
Kode status respons HTTP sangat penting bagi administrator web. Biasanya, kode status respons HTTP 301 berarti bahwa URL telah dipindahkan secara permanen ke lokasi yang berbeda. Secara default, wget mengikuti pengalihan. Namun, Anda dapat menggunakan opsi –max-redirect untuk menentukan apa yang dilakukan wget saat menghadapi respons 301. Misalnya, Anda dapat menyetelnya ke 0 untuk menginstruksikan wget agar tidak mengikuti pengalihan.
[######@fedora ~]$ wget --max-redirect 0 https://fosslinux.com --2021-11-10 16:55:54-- https://fosslinux.com/ Resolving fosslinux.com (fosslinux.com)... 67.205.134.74, 2604:a880:400:d0::4bfe:a001 Connecting to fosslinux.com (fosslinux.com)|67.205.134.74|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://www.fosslinux.com/ [following] 0 redirections exceeded.
Menyimpan keluaran verbose wget ke file log
Secara default, wget menampilkan keluaran verbose ke terminal Linux. Namun, Anda dapat menggunakan opsi -o untuk mencatat semua pesan keluaran ke file log tertentu.
$ wget -o foofoo_log.txt fosslinux.com
Perintah wget di atas akan menyimpan keluaran verbose ke file 'foofoo_log.txt'.
Menjalankan perintah wget sebagai web spider
Anda dapat membuat perintah wget berfungsi sebagai web spider menggunakan opsi –spider. Intinya, itu tidak akan mengunduh halaman web apa pun tetapi hanya akan memeriksa apakah mereka ada di sana. Selain itu, setiap URL yang rusak akan dilaporkan.
$ wget -r --spider fosslinux.com
Menjalankan perintah wget di latar belakang
Anda dapat menggunakan opsi -b / –background untuk menjalankan proses wget di latar belakang. Ini penting jika Anda mengunduh file besar yang membutuhkan waktu lebih lama untuk diselesaikan.
$ wget -b fosslinux.com/latest.tar.gz
Secara default, output dari proses wget diarahkan ke 'wget-log'. Namun, Anda dapat menentukan file log yang berbeda dengan opsi -o.
Untuk memantau proses wget, gunakan perintah tail.
$ tail -f wget-log
Menjalankan wget dalam mode debug
Saat Anda menjalankan wget dalam mode debug, outputnya menyertakan informasi server jarak jauh seperti header permintaan wget dan header respons. Header permintaan dan respons sangat penting bagi administrator sistem dan pengembang web.
$ wget --debug fosslinux.com
Mengubah User-Agent dengan perintah wget
Anda dapat mengubah Agen Pengguna default dengan opsi –agen-pengguna. Misalnya, Anda dapat menggunakan 'Mozilla/4.0' sebagai wget User-Agent untuk mengambil fosslinux.com dengan perintah berikut.
$ wget --user-agent='Mozilla/4.0' fosslinux.com
Pelajari lebih lanjut kiat dan trik wget dari halaman manual wget resmi.
Menutup
Perintah wget Linux menyediakan cara yang efisien untuk menarik dan mengunduh data dari internet tanpa menggunakan browser. Sama seperti perintah curl serbaguna, wget dapat menangani skenario unduhan rumit seperti unduhan file besar, unduhan non-interaktif, dan unduhan banyak file.