Wget: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
''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.
+
''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. Het is het broertje van [[cURL]].
  
== Bestand downloaden via http ==
+
== Eén bestand downloaden via http ==
 +
 
 +
''' Gewoon '''
  
 
  wget https://downloads.wordpress.org/plugin/akismet.3.1.3.zip
 
  wget https://downloads.wordpress.org/plugin/akismet.3.1.3.zip
  
== Bestand downloaden via http naar een bepaalde bestand ==
+
''' Naar een specifiek output-bestand '''
  
 
  wget http://downloads.wordpress.org/plugin/w3-total-cache.zip -O ~/in3/w3-total-cache.zip
 
  wget http://downloads.wordpress.org/plugin/w3-total-cache.zip -O ~/in3/w3-total-cache.zip
Regel 19: Regel 21:
 
* -o (zonder hoofdletter) heeft betrekking op het schrijven naar een logbestand
 
* -o (zonder hoofdletter) heeft betrekking op het schrijven naar een logbestand
 
* -O (met hoofdletter) is blijkbaar een gebruikelijke schakelaar om de output te specificeren: <code>curl</code> gebruikt dezelfde schakelaar
 
* -O (met hoofdletter) is blijkbaar een gebruikelijke schakelaar om de output te specificeren: <code>curl</code> gebruikt dezelfde schakelaar
 +
 +
== Map met bestanden downloaden ==
 +
 +
Wil maar niet lukken. Het beste tot op heden [https://stackoverflow.com/questions/273743/using-wget-to-recursively-fetch-a-directory-with-arbitrary-files-in-it bron]:
 +
 +
wget --recursive --no-parent --reject "index.html" -e robots=off -nH -r http://media.example.com/mijn_map/
 +
  
 
== Hele site downloaden via http ==
 
== Hele site downloaden via http ==
Regel 25: Regel 34:
  
 
In dit geval ''recursief'' met een ''recursie-level'' van 25.
 
In dit geval ''recursief'' met een ''recursie-level'' van 25.
 +
 +
== Hele site downloaden via ftp ==
 +
 +
Bv. (met een recursie-level van 25):
 +
 +
wget -r -l 25 ftp://username:password@ip.of.old.host
  
 
== Escape codes ==
 
== Escape codes ==
Regel 34: Regel 49:
 
--password='!company2013' -N -P "data/parser/company/" "ftp://ftp2.company.com/Production/somedata.zip"
 
--password='!company2013' -N -P "data/parser/company/" "ftp://ftp2.company.com/Production/somedata.zip"
 
</pre>
 
</pre>
 
== 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 ==
 
== Spanning hosts ==

Versie van 13 okt 2017 14:25

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. Het is het broertje van cURL.

Eén bestand downloaden via http

Gewoon

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

Naar een specifiek output-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

Map met bestanden downloaden

Wil maar niet lukken. Het beste tot op heden bron:

wget --recursive --no-parent --reject "index.html" -e robots=off -nH -r http://media.example.com/mijn_map/


Hele site downloaden via http

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

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

Hele site downloaden via ftp

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

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

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"

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