Wget
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