Wget

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

wget is een Unix command line-routine om bestanden te downloaden over http of ftp. Erg handig in het automatiseren van processen, of het leegtrekken of migreren van een website.

Bestand downloaden via http

wget https://downloads.wordpress.org/plugin/akismet.3.1.3.zip

Bestand downloaden via http naar een bepaalde bestand

wget http://downloads.wordpress.org/plugin/w3-total-cache.zip -O ~/in3/w3-total-cache.zip

Wat niet werkt:

wget http://downloads.wordpress.org/plugin/w3-total-cache.zip ~/in3/w3-total-cache.zip # Laatste argument wordt genegeerd
wget http://downloads.wordpress.org/plugin/w3-total-cache.zip -O ~/in3 # Foutmelding: Laatste argument moet inclusief bestandsnaam zijn

Details:

  • -o (zonder hoofdletter) heeft betrekking op het schrijven naar een logbestand
  • -O (met hoofdletter) is blijkbaar een gebruikelijke schakelaar om de output te specificeren: curl gebruikt dezelfde schakelaar

Hele site downloaden via http

wget -r -l 25 http://www.example.com

In dit geval recursief met een recursie-level van 25.

Escape codes

Door de onderdelen van het commando apart te benoemen en met ' te werken, kun je bv. uitroeptekens, spaties en apestaartjes escapen:

wget -q -T 60 --retry-connrefused -t 5 --waitretry=60 --user='ftp2.company.com|company2013' 
--password='!company2013' -N -P "data/parser/company/" "ftp://ftp2.company.com/Production/somedata.zip"

Hele site downloaden via ftp

Bv. (met een recursie-level van 25):

wget -r -l 25 ftp://username:password@ip.of.old.host

Spanning hosts

http://www.gnu.org/software/wget/manual/html_node/Spanning-Hosts.html

Script downloadsite.sh

#!/bin/sh

#########################################
# Haal via wget (FTP) een site hierheen!
#########################################
#
# Inloggegevens bron-FTP-account
#
inlognaam="inlognaam"
wachtwoord="wachtwoord"
bron="ftp://example.com"

#
# Kopiëer alles naar een 'in'-map
#
doel="/home/account/in3"

#
# -r - Recursie
# -c - Continue   Handig als je verder wilt gaan met een eerdere download
# -l - Level      Level of recursie. Standaard is 5, en dat is te weinig!
#
cd $doel

wget -r -c -l 25 --user=$inlognaam --password=$wachtwoord $bron

Voorbeeld: Mediawiki downloaden

De working directory is de doellocatie van de MediaWiki-installatie. Vandaaruit (bron):

wget http://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz

Error 420: Too Many Requests

Deze foutmelding geeft aan dat de server vindt dat je te veel vraagt. Oplossing: Commando herhaaldelijk geven, maar alleen nieuwe bestanden opslaan. Bv.:

wget -r -c http://www.example.com

Bronnen