Hoe de Wget-opdracht te gebruiken in Linux met voorbeelden

In dit artikel zullen we het wget hulpprogramma bespreken dat bestanden ophaalt van het World Wide Web (WWW) met veelgebruikte protocollen zoals HTTP, HTTPS, FTP, en FTPS.

Wget is een gratis command-line hulpprogramma en netwerkbestandsdownloader, dat wordt geleverd met veel functies die het downloaden van bestanden gemakkelijk maken, waaronder:

  • Download grote bestanden of spiegel complete web- of FTP-sites.
  • Download meerdere bestanden tegelijk.
  • Stel bandbreedte en snelheidslimiet in voor downloads.
  • Download bestanden via proxies.
  • Kan onderbroken downloads hervatten.
  • Recursief mappen spiegelen.
  • Werkt op de meeste UNIX-achtige besturingssystemen en ook op Windows.
  • Onbeheerde / achtergrondwerking.
  • Ondersteuning voor persistente HTTP-verbindingen.
  • Ondersteuning voor SSL/TLS voor versleutelde downloads met behulp van de OpenSSL- of GnuTLS-bibliotheek.
  • Ondersteuning voor IPv4- en IPv6-downloads.

Wget Opdracht Syntax

De basis syntax van Wget is:

$ wget [option] [URL]

Controleer eerst of het wget hulpprogramma al is geïnstalleerd op uw Linux-box, met behulp van de volgende opdracht.

$ rpm -q wget         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ dpkg -l | grep wget [On Debian, Ubuntu and Mint]

Installeer Wget op Linux

Als Wget niet is geïnstalleerd, kunt u het installeren met behulp van het standaard pakketbeheer van uw Linux-systeem, zoals getoond.

$ sudo apt install wget -y      [On Debian, Ubuntu and Mint]
$ sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/wget  [On Gentoo Linux]
$ sudo pacman -Sy wget           [On Arch Linux]
$ sudo zypper install wget      [On OpenSUSE]    

De -y optie hier gebruikt, is om bevestigingsmeldingen te voorkomen voordat een pakket wordt geïnstalleerd. Voor meer YUM en APT commando voorbeelden en opties, lees onze artikelen over:

1. Download een Bestand met Wget

Het commando zal een enkel bestand downloaden en opslaan in de huidige directory. Het laat ook de downloadvoortgang, grootte, datum en tijd zien tijdens het downloaden.

# wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    

2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

2. Wget Download Bestand met een Andere Naam

Met de -O (hoofdletter) optie, worden bestanden gedownload met verschillende bestandsnamen. Hier hebben we de bestandsnaam wget.zip zoals hieronder getoond.

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’

wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    

2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

3. Wget Download Meerdere Bestanden met HTTP en FTP Protocol

Hier zien we hoe meerdere bestanden tegelijkertijd worden gedownload met behulp van het wget commando via HTTP en FTP protocol.

$ wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig

--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    

2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

4. Wget Download Meerdere Bestanden Vanuit een Bestand

Om meerdere bestanden tegelijk te downloaden, gebruik de -i optie met de locatie van het bestand dat de lijst van URL’s bevat die gedownload moeten worden. Elke URL moet op een aparte regel worden toegevoegd zoals getoond.

Bijvoorbeeld, het volgende bestand ‘download-linux.txt‘ bevat de lijst van URL’s die gedownload moeten worden.

# cat download-linux.txt 

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
# wget -i download-linux.txt

--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Als uw URL-lijst een specifiek nummerpatroon heeft, kunt u accolades toevoegen om alle URL’s op te halen die overeenkomen met het patroon. Bijvoorbeeld, als u een reeks Linux-kernels wilt downloaden vanaf versie 5.1.1 tot 5.1.15, kunt u het volgende doen.

$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz

--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’

linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     

2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]

--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’

linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

5. Wget Hervat Onvoltooide Download

In het geval van een grote bestandsdownload kan het soms gebeuren dat de download stopt. In dat geval kunnen we doorgaan met het downloaden van hetzelfde bestand waar het gebleven was met de -c optie.

Maar wanneer u begint met het downloaden van bestanden zonder de -c optie aan te geven, zal wget een .1 extensie toevoegen aan het einde van het bestand, wat wordt beschouwd als een nieuwe download. Daarom is het een goede praktijk om de -c schakelaar toe te voegen wanneer u grote bestanden downloadt.

# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

6. Wget Spiegel Volledige Website

Om een volledige website te downloaden, spiegelen of kopiëren voor offline weergave, kunt u de volgende opdracht gebruiken die een lokale kopie van de website maakt samen met alle assets (JavaScript, CSS, afbeeldingen).

$ wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com

Uitleg van de bovenstaande opdracht.

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

7. Wget Bestanden downloaden op de achtergrond

Met de optie -b kunt u een download onmiddellijk op de achtergrond starten nadat de download is gestart en logs worden geschreven in het bestand wget.log.

$ wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

8. Wget Instellen van downloadsnelheidslimieten

Met de optie --limit-rate=100k wordt de downloadsnelheidslimiet beperkt tot 100k en de logs worden aangemaakt onder wget.log zoals hieronder weergegeven.

$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Bekijk het bestand wget.log en controleer de downloadsnelheid van wget.

$ tail -f wget-log 

 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

9. Wget Downloaden van met wachtwoord beveiligde bestanden via FTP en HTTP

Om een bestand te downloaden van een met wachtwoord beveiligde FTP-server, kunt u de opties --ftp-user=gebruikersnaam en --ftp-password=wachtwoord gebruiken zoals hieronder weergegeven.

$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Om een bestand te downloaden van een met wachtwoord beveiligde HTTP-server, kunt u de opties --http-user=gebruikersnaam en --http-password=wachtwoord gebruiken zoals hieronder weergegeven.

$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

10. Wget SSL-certificaatcontrole negeren

Om de SSL-certificaatcontrole te negeren tijdens het downloaden van bestanden via HTTPS, kunt u de optie --no-check-certificate gebruiken:

$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz

--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

11. Wget Versie en Help

Met de opties --version en --help kunt u de versie en hulp bekijken zoals nodig.

$ wget --version
$ wget --help

In dit artikel hebben we Linux wget-opdrachten met opties voor dagelijkse beheertaken behandeld. Raadpleeg man wget als u meer wilt weten? Deel vriendelijk via onze opmerkingen of laat het ons weten als we iets hebben gemist.

Source:
https://www.tecmint.com/10-wget-command-examples-in-linux/