Wget: verschil tussen versies
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. | ||
− | == | + | == 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 | ||
− | + | ''' 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> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Spanning hosts == | == Spanning hosts == |
Versie van 13 okt 2017 13: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.
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