Zum Inhalt springen

Wget: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „<div style="column-count:3">“ durch „<div style="column-count:2">“
 
(147 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''wget''' kann Dateien nicht-interaktiv aus dem Internet herunterladen
'''{{BASEPAGENAME}}''' - [[HTTP]]-Downloads auf der [[Konsole]]


= Beschreibung =
== Beschreibung ==
'''Nicht interaktiv'''
Dateien nicht-interaktiv aus dem Internet herunterladen
* wgat kann im Hintergrund arbeiten, während der Benutzer nicht angemeldet ist.  
 
; Nicht interaktiv
[[wget]] kann im Hintergrund arbeiten, während der Benutzer nicht angemeldet ist.  
* Im Gegensatz dazu erfordern die meisten Webbrowser die ständige Anwesenheit des Benutzers, was bei der Übertragung einer großen Datenmenge ein großes Hindernis darstellen kann.
* Im Gegensatz dazu erfordern die meisten Webbrowser die ständige Anwesenheit des Benutzers, was bei der Übertragung einer großen Datenmenge ein großes Hindernis darstellen kann.
* So können Sie einen Abruf starten und die Verbindung zum System trennen, während Wget die Arbeit beendet.  
* So können Sie einen Abruf starten und die Verbindung zum System trennen, während Wget die Arbeit beendet.  


'''Protokolle'''
; Protokolle
* HTTP-, HTTPS- und FTP-Protokolle sowie den Abruf über HTTP-Proxys.
HTTP-, HTTPS- und FTP-Protokolle sowie den Abruf über HTTP-Proxys
* Wget kann Links in HTML-, XHTML- und CSS-Seiten folgen
** um lokale Versionen von entfernten Websites zu erstellen
** wobei die Verzeichnisstruktur der ursprünglichen Website vollständig wiederhergestellt wird.
**  Dies wird manchmal auch als "rekursives Herunterladen" bezeichnet.
** Dabei beachtet Wget den Robot Exclusion Standard (/robots.txt).
* * Wget kann angewiesen werden, die Links in den heruntergeladenen Dateien so umzuwandeln, dass sie auf die lokalen Dateien verweisen, damit sie offline betrachtet werden können.
* Wget wurde so konzipiert, dass es auch bei langsamen oder instabilen Netzwerkverbindungen stabil arbeitet.
** Wenn ein Download aufgrund eines Netzwerkproblems fehlschlägt, wird er so lange wiederholt, bis die gesamte Datei abgerufen wurde.
** Wenn der Server eine Wiederholung unterstützt, weist es den Server an, den Download an der Stelle fortzusetzen, an der er unterbrochen wurde.


= Installation =
Wget kann Links in HTML-, XHTML- und CSS-Seiten folgen
= Syntax =
* um lokale Versionen von entfernten Websites zu erstellen
  $ '''wget [URL]'''
* wobei die Verzeichnisstruktur der ursprünglichen Website vollständig wiederhergestellt wird.
* Dies wird manchmal auch als "rekursives Herunterladen" bezeichnet.
* Dabei beachtet Wget den Robot Exclusion Standard (/robots.txt).
* Wget kann angewiesen werden, die Links in den heruntergeladenen Dateien so umzuwandeln, dass sie auf die lokalen Dateien verweisen, damit sie offline betrachtet werden können.
Wget wurde so konzipiert, dass es auch bei langsamen oder instabilen Netzwerkverbindungen stabil arbeitet.
* Wenn ein Download aufgrund eines Netzwerkproblems fehlschlägt, wird er so lange wiederholt, bis die gesamte Datei abgerufen wurde.
* Wenn der Server eine Wiederholung unterstützt, weist es den Server an, den Download an der Stelle fortzusetzen, an der er unterbrochen wurde.


== Parameter ==
[https://www.gnu.org/software/wget/ wget] ist ein Programm, mit dem man direkt aus einem Terminal Dateien von FTP- oder HTTP-Servern herunterladen kann.
* URL


== Optionen ==
Das Programm ist sehr praktisch, wenn man in einem Shellscript Daten von Servern holen will, aber es ist auch ein guter Downloadmanager.


= Konfiguration =
Downloads können zu einem späteren Zeitpunkt an der abgebrochenen Stelle fortgeführt werden.
== Dateien ==


= Anwendungen =
== Installation ==
== Anhalten und fortsetzen ==
<syntaxhighlight lang="bash" highlight="1" line copy>
'''Anhalten'''
sudo apt install wget
'''[Strg] + c'''
</syntaxhighlight>
'''Fortsetzen'''
$ '''wget -c [URL]'''


== Ziel-Dateinamen ==
== Anwendung ==
Dateien werden mit ihrem Originalnamen im aktuellen Verzeichnis gespeichert. Mit '''-O''' kann ein anderes Ziel angegeben werden.
=== Dateidownload ===
$ '''wget -O [file-name] [URL]'''
Datei in [[pwd|aktuelles Verzeichnis]] herunterladen
<syntaxhighlight lang="bash" highlight="1" line>
wget https://example.com/folder/file
</syntaxhighlight>


== Protokolldatei ==
==== Anhalten und fortsetzen ====
Wenn Sie möchten, können Sie die Nachrichten/Informationen, die wget beim stdout produziert, auch in eine Protokolldatei umleiten. Dies kann mit der Kommandozeilenoption -o (Kleinbuchstaben) erfolgen.
===== Anhalten =====
$ wget -o [log-filename] [URL]
<syntaxhighlight lang="bash" highlight="1" line>
[Strg] + c
</syntaxhighlight>


== Download-Geschwindigkeit ==
===== Fortsetzen =====
Während Sie wget verwenden, können Sie auch die Download-Geschwindigkeit begrenzen. Dies kann mit der Option -limit-rate geschehen, die einen Wert erfordert, der den Betrag in Form von Bytes pro Sekunde angibt. Die Menge kann in Bytes, Kilobytes mit dem Suffix „k“ oder Megabyte mit dem Suffix „m“ angegeben werden.
<syntaxhighlight lang="bash" highlight="1" line copy>
$ wget –limit-rate==[amount] [URL]
wget -c [URL]
</syntaxhighlight>


== Timeout ==
==== Ziel-Dateinamen ====
Read Timeout ist die Zeitspanne (in Sekunden), in der wget nach Daten sucht (falls keine Daten empfangen werden), bevor der Download neu gestartet wird. Standardmäßig beträgt der Lese-Timeout 900 Sekunden, aber Sie können dies mit der Option -read-timeout ändern.
Dateien werden mit ihrem Originalnamen im aktuellen Verzeichnis gespeichert
$ wget –read-timeout==[time in seconds] [URL]
* Mit -O kann ein anderes Ziel angegeben werden
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -O [file-name] [URL]
</syntaxhighlight>


== Download-Versuche ==
=== Bandbreite begrenzen ===
Wann immer Ihr Download aufgrund einer schlechten Internetverbindung oder eines anderen Fehlers unterbrochen wird, versucht das Tool, den Download selbst fortzusetzen. Standardmäßig versucht das Dienstprogramm 20 Mal und stoppt dann. Wenn Sie jedoch die Anzahl der Versuche erhöhen oder verringern möchten, können Sie dies mit der Befehlszeilenoption -t tun.
Während Sie wget verwenden, können Sie auch die Download-Geschwindigkeit begrenzen
$ wget -t [no.-of-retries-you want] [URL]
* Dies kann mit der Option -limit-rate geschehen, die einen Wert erfordert, der den Betrag in Form von Bytes pro Sekunde angibt
* Die Menge kann in Bytes, Kilobytes mit dem Suffix "k" oder Megabyte mit dem Suffix "m" angegeben werden
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -limit-rate==[amount] [URL]
</syntaxhighlight>


== Debug-Informationen ==
Wenn man bei einem Download gleichzeitig noch schnell surfen will, ist es praktisch, die Downloadrate zu begrenzen
Wenn Sie möchten, können Sie auch den Befehl wget verwenden, um zusätzliche Informationen zum Downloadvorgang anzuzeigen. Diese Informationen sind nützlich für Debugging-Zwecke, wenn das Tool nicht ordnungsgemäß funktioniert. Auf die Funktion kann über die Befehlszeilenoption –debug oder -d zugegriffen werden.
* In diesem Beispiel wird sie auf 40 kB/s begrenzt:
$ wget –debug [URL]
<syntaxhighlight lang="bash" highlight="1" line copy>
wget --limit-rate=40000 https://example.com/folder/file
</syntaxhighlight>


== Fortschrittsanzeige ==
=== Timeout ===
Wenn Sie möchten, können Sie auch die Download-Fortschrittsanzeige ändern, die wget in der Ausgabe anzeigt. Es gibt zwei Arten von Fortschrittsanzeigen: Balken (Standard) und Punkt. Wenn der Ausgang jedoch nicht auf dem Terminal (TTY) angezeigt wird, wird standardmäßig die Punktanzeige verwendet.
Read Timeout ist die Zeitspanne (in Sekunden), in der wget nach Daten sucht (falls keine Daten empfangen werden), bevor der Download neu gestartet wird
* Standardmäßig beträgt der Lese-Timeout 900 Sekunden, aber Sie können dies mit der Option -read-timeout ändern
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -read-timeout==[time in seconds] [URL]
</syntaxhighlight>


Mit der Option –Fortschritt können Sie die Art des Kennzeichens wählen, falls Sie das Standardverhalten überschreiben möchten. Zum Beispiel:
=== Download-Versuche ===
$ wget --progress==dot [URL]
Wann immer Ihr Download aufgrund einer schlechten Internetverbindung oder eines anderen Fehlers unterbrochen wird, versucht das Tool, den Download selbst fortzusetzen
* Standardmäßig versucht das Dienstprogramm 20 Mal und stoppt dann
* Wenn Sie jedoch die Anzahl der Versuche erhöhen oder verringern möchten, können Sie dies mit der Befehlszeilenoption -t tun
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -t [no.-of-retries-you want] [URL]
</syntaxhighlight>


= Dokumentation =
=== Fortschrittsanzeige ===
== Man-Pages ==
Wenn Sie möchten, können Sie auch die Download-Fortschrittsanzeige ändern, die wget in der Ausgabe anzeigt
== Info-Pages ==
* Es gibt zwei Arten von Fortschrittsanzeigen: Balken (Standard) und Punkt
= Links =
* Wenn der Ausgang jedoch nicht auf dem Terminal (TTY) angezeigt wird, wird standardmäßig die Punktanzeige verwendet
== Intern ==
== Weblinks ==


= Kontrollfragen =
Mit der Option -Fortschritt können Sie die Art des Kennzeichens wählen, falls Sie das Standardverhalten überschreiben möchten
<div class="toccolours mw-collapsible mw-collapsed">
<syntaxhighlight lang="bash" highlight="1" line copy>
''Testfrage 1''
wget --progress==dot [URL]
<div class="mw-collapsible-content">'''Antwort1'''</div>
</syntaxhighlight>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


= TMP =
=== Bestimmte Dateien ===
== wget - Datei-Download ==
Bestimmte Dateien herunterladen
[http://www.gnu.org/software/wget/ wget] ist ein Programm, mit dem man direkt aus einem Terminal Dateien von FTP- oder HTTP-Servern herunterladen kann.


Das Programm ist sehr praktisch, wenn man in einem Shellscript Daten von Servern holen will, aber es ist auch ein sehr guter Downloadmanager.
==== Bilder ====
; Allen Bilder herunterladen
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -r --level 3 -np -p --user-agent="Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5" https://example.com/dir/
</syntaxhighlight>
* -p gibt vor, den Inhalt der Seite herunterzuladen
* rekursiv (-r) bis zu einer
* Tiefe von 3 (--level 3) vorgegangen wird,
* Übergeordnete Verzeichnisse werden ignoriert (-np)
* Außerdem gibt wget vor, als Mozilla unterwegs zu sein (--user-agent), da viele Seiten wget blockieren


Downloads können zu einem späteren Zeitpunkt an der abgebrochenen Stelle fortgeführt werden.  
Zudem ist es möglich, nur spezielle Dateitypen zu bekommen
* Bei diesem Aufruf werden rekursiv die Dokumente nach *.jpg und *.png durchsucht und abgespeichert:
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -r -A jpg,png https://example.com/dir/
</syntaxhighlight>


==== Installation ====
Und mit diesem Befehl werden alle Dateien außer *.jpg und *.png heruntergeladen
Das Programm '''wget''' ist normalerweise in der Standardinstallation enthalten, kann aber ansonsten über das gleichnamige Paket installiert werden
<syntaxhighlight lang="bash" highlight="1" line copy>
# apt install wget
wget -r -R jpg,png https://example.com/dir/
</syntaxhighlight>


==== Aufruf ====
==== PDF-Dateien ====
$ wget Optionen... URLs...  
; Beispiel für PDF-Dateien
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -p -r -nd -l 4 -e robots=off -A pdf https://example.com/
</syntaxhighlight>


==== Beispiele ====
-e robots=off sorgt dafür, dass wget die robots.txt ignoriert und auch Links folgt, die in dieser Datei ausgeschlossen sind
===== Einfacher Dateidownload =====
Grundsätzlich kann man eine Datei mit dieser Syntax in das aktuelle Verzeichnis laden:
wget http://example.com/folder/file


===== Dateidownload =====
=== Wiederholungsfunktion ===
Will man eine Seite mit allen Bildern herunterladen, kann der Befehl so lauten:
* Was ist, wenn die Internetverbindung abbricht?
wget -r --level 3 -np -p --user-agent="Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5" http://example.com/dir/  
* Dann kann man den Download auch auf eine begrenzte oder unbegrenzte Anzahl von Wiederholungen schalten:
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -t X https://example.com/folder/file
</syntaxhighlight>


<tt>-p</tt> gibt vor, den Inhalt der Seite herunterzuladen, wobei rekursiv (<tt>-r</tt>) bis zu einer Tiefe von 3 (<tt>--level 3</tt>) vorgegangen wird, übergeordnete Verzeichnisse werden ignoriert (<tt>-np</tt>). Außerdem gibt wget vor, als Mozilla unterwegs zu sein (<tt>--user-agent</tt>), da viele Seiten wget blockieren.
Das X steht wie für eine Zahl entsprechend der Anzahl der gewünschten Wiederholungen. 0 steht für unendlich


Zudem ist es möglich nur spezielle Dateitypen zu bekommen. Bei diesem Aufruf werden rekursiv die Dokumente nach *.jpg und *.png durchsucht und abgespeichert:
=== Referer ===
wget -r -A jpg,png http://example.com/dir/
; Referer ändern
Manche Downloadserver erlauben einen Download nur, wenn der Benutzer von einer bestimmten Adresse kommt
* Normalerweise die, von der der Download startet
<syntaxhighlight lang="bash" highlight="1" line copy>
wget --referer=https://von.dieser.seite.com/me/ich https://example.com/folder/file
</syntaxhighlight>


Und mit diesem Befehl werden alle Dateien außer *.'''jpg''' und *.'''png''' runtergeladen:
=== Im Hintergrund herunterladen ===
wget -r -R jpg,png http://example.com/dir/
Bei großen Dateien bietet es sich an, den Download im Hintergrund zu starten
* wget läuft dann eigenständig im Hintergrund und schreibt im Download-Verzeichnis eine log-Datei:
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -b https://example.com/folder/file
</syntaxhighlight>


Ein Beispiel für PDF-Dateien:
=== Website speichern ===
wget -p -r -nd -l 1 -e robots=off -A pdf "[http://www.meinewebseite.de/unterseite.html www.webseite.de/unterseite.htm]"
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -r -k -E -l 3 --random-wait --user-agent='Mozilla/5.0 (Windows 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1' https://example.com
</syntaxhighlight>


-e robots=off sorgt dafür, dass wget die robots.txt ignoriert und auch Links folgt die in dieser Datei ausgeschlossen sind.  
; Website offline speichern
<syntaxhighlight lang="bash" highlight="1" line copy>
wget \
-r \
-k \
-E \
-l 8 \
https://example.com
</syntaxhighlight>


===== Dateidownload mit Wiederholungsfunktion =====
# wget
Was ist, wenn die Internetverbindung abbricht? Dann kann man den Download auch auf eine begrenzte oder unbegrenzte Anzahl von Wiederholungen schalten:
# Die Option -r sorgt dafür, dass rekursiv
wget -t X http://example.com/folder/file
#* Die Option -r sorgt dafür, dass rekursiv bis zu einer Tiefe von 8 (-l 8) vorgegangen wird*
# -k konvertiert die Links, so dass sie lokal funktionieren
# -E erzwingt die Endung .html für alle Dateien (ist dann nützlich, wenn .php- oder .asp-Seiten geladen werden
#
# bis zu einer Tiefe von 8 (-l 8) vorgegangen wird
# URL


Das X steht wie für eine Zahl entsprechend der Anzahl der gewünschten Wiederholungen. 0 steht für unendlich.


===== Download abbrechen =====
Eine alternative Möglichkeit
Mit Strg + C kann man einen aktiven Download abbrechen.
# [https://www.httrack.com/ httrack]


===== Download fortsetzen =====
=== Tarballs entpacken ===
Hat man einen Download manuell abgebrochen oder ist er aus einem anderen Grund gescheitert, so kann man einen unvollständigen Download mit
; Tarballs automatisch entpacken
wget -c http://example.com/folder/file  
Um .tar.gz-Archive direkt zu entpacken ohne sie zwischenzuspeichern kann man folgenden Befehl nutzen
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -q -O - https://example.com/folder/file.tar.gz | tar xvzf -
</syntaxhighlight>


fortsetzen. Nun beginnt er dort, wo er aufgehört hat.
Die Option -q sorgt dafür, dass keine Informationen ausgegeben werden, die tar nicht verarbeiten könnte
* Mit -O - wird wget angewiesen die Datei direkt auf die Standardausgabe STDOUT zu schreiben
* Mittels | wird die Standardausgabe STDOUT auf die Standardeingabe STDIN für das nächste Programm (in diesem Fall tar) umgeleitet


===== Referer ändern =====
Nun wird die Datei ganz normal entpackt, wobei x für extrahieren, v für verbose (also viele Infos ausgeben), z für dekomprimieren steht
Manche Downloadserver erlauben einen Download nur, wenn der Benutzer von einer bestimmten Adresse kommt.  
* Mit f - wird die Datei von der Standardeingabe STDIN (die in diesem Fall ja von wget kommt) gelesen
* Nach diesem Befehl befinden sich nur die entpackten Dateien und Verzeichnisse, nicht jedoch die eigentliche .tar.gz-Datei im aktuellen Verzeichnis


Diese ist immer die, von der normalerweise der Download startet. wget kann diesen Wert übernehmen:
=== Zeitsteuerung ===
wget --referer=http://von.dieser.seite.com/me/ich http://example.com/folder/file
; Zeitsteuerung von Downloads
Um Downloads zum Beispiel um 13:40 Uhr zu beginnen, hilft folgendes Skript
<syntaxhighlight lang="bash" highlight="1" line copy>
#!/bin/sh
cd ~/Downloads
echo "\033[49;1;34mFolgende Datei soll heruntergeladen werden:"
echo "\033[49;1;32m"
echo "$1" | awk -F / '{print $NF}'
echo
echo "\033[49;1;35mWann soll der Download starten? (Format: hhmmss)"
echo "\033[0m"
read u
if [ $u = "next" ]
then
ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
var=`head -n 1 ~/.log$$`
if [ $$ -ne $var ]
then
echo "Nach dem letzten Download wird dieser Download gestartet."
fi
while [ $$ -ne $var ]
do
sleep 1
ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
var=`head -n 1 ~/.log$$`
done
rm ~/.log$$
elif [ $u = "now" -o $u = "jetzt" -o $u = "Jetzt" ]
then
echo "Der Download startet jetzt!"
else
while [ $(date +%H%M%S) -ne $u ]
do
sleep 1
done
fi
wget -c $1


===== Geschwindigkeit begrenzen =====
echo "Der Download ist beendet."
Wenn man bei einem Download gleichzeitig noch schnell surfen will, ist es praktisch, die Downloadrate zu begrenzen. In diesem Beispiel wird sie auf 40 kB/s begrenzt:
</syntaxhighlight>
wget --limit-rate=40000 http://example.com/folder/file


===== Im Hintergrund herunterladen =====
Der Name des Skripts sollte dl heißen, ansonsten muss man im Skript dl durch den Namen ersetzen
Bei großen Dateien bietet es sich an, den Download im Hintergrund zu starten. wget läuft dann eigenständig im Hintergrund und schreibt im Download-Verzeichnis eine log-Datei:
wget -b http://example.com/folder/file


===== Websites offline speichern =====
Das Skript ausführbar machen und am besten in einem Pfad speichern der in $PATH enthalten ist
Das ist sehr einfach und geht mit:
* Dann kann der Download wie folgt gestartet werden:
wget -r -k -E -l 8 http://example.com  
<syntaxhighlight lang="bash" highlight="1" line copy>
dl https://example.com/folder/file
</syntaxhighlight>


Die Option <tt>-r</tt> sorgt dafür, dass rekursiv bis zu einer Tiefe von 8 (<tt>-l 8</tt>) vorgegangen wird, <tt>-k</tt> konvertiert die Links, so dass sie lokal funktionieren und <tt>-E</tt> erzwingt die Endung '''.html''' für alle Dateien (ist dann nützlich, wenn .'''php'''- oder .'''asp'''-Seiten geladen werden.
Daraufhin erscheint die Frage, wann der Download starten soll
* Gültige Eingaben sind
** ''Jetzt'', ''jetzt'', ''now'' für sofort starten
** 134000 für 13:40 Uhr oder 121314 für 12:13 Uhr und 14 Sekunden
** ''next'', startet direkt nach den bisher gestarteten Downloads


Eine alternative Möglichkeit: [http://www.httrack.com/ httrack]
So kann man
* einen Download sofort starten, und bei 5 weiteren ''next'' eingeben
* Dadurch werden alle der Reihe nach abgearbeitet


===== Tarballs automatisch entpacken =====
=== Problembehebung ===
Um '''.tar.gz'''-Archive direkt zu entpacken ohne sie zwischenzuspeichern kann man folgenden Befehl nutzen:
==== Protokolldatei ====
wget -q -O - http://example.com/folder/file.tar.gz | tar xvzf -
Wenn Sie möchten, können Sie die Nachrichten/Informationen, die wget beim stdout produziert, auch in eine Protokolldatei umleiten
* Dies kann mit der Kommandozeilenoption -o (Kleinbuchstaben) erfolgen
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -o [log-filename] [URL]
</syntaxhighlight>


Die Option <tt>-q</tt> sorgt dafür, dass keine Informationen ausgegeben werden, die <tt>tar</tt> nicht verarbeiten könnte. Mit <tt>-O -</tt> wird wget angewiesen die Datei direkt auf die Standardausgabe STDOUT zu schreiben. Mittels <tt>|</tt> wird die Standardausgabe STDOUT auf die Standardeingabe STDIN für das nächste Programm (in diesem Fall <tt>tar</tt>) umgeleitet.
==== Debug-Informationen ====
Wenn Sie möchten, können Sie auch den Befehl wget verwenden, um zusätzliche Informationen zum Downloadvorgang anzuzeigen
* Diese Informationen sind nützlich für Debugging-Zwecke, wenn das Tool nicht ordnungsgemäß funktioniert
* Auf die Funktion kann über die Befehlszeilenoption -debug oder -d zugegriffen werden
<syntaxhighlight lang="bash" highlight="1" line copy>
wget -debug [URL]
</syntaxhighlight>


Nun wird die Datei ganz normal entpackt, wobei <tt>x</tt> für extrahieren, <tt>v</tt> für verbose (also viele Infos ausgeben), <tt>z</tt> für dekomprimieren steht. Mit <tt>f -</tt> wird die Datei von der Standardeingabe STDIN (die in diesem Fall ja von wget kommt) gelesen. Nach diesem Befehl befinden sich nur die entpackten Dateien und Verzeichnisse, nicht jedoch die eigentliche '''.tar.gz'''-Datei im aktuellen Verzeichnis.
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line copy>
wget [URL]
</syntaxhighlight>


===== Zeitsteuerung von Downloads =====
=== Optionen ===
Um Downloads zum Beispiel um 13:40 Uhr zu beginnen, hilft folgendes Skript:
#!/bin/sh
cd ~/Downloads
echo "\033[49;1;34mFolgende Datei soll heruntergeladen werden:"
echo "\033[49;1;32m"
echo "$1" | awk -F / '{print $NF}'
echo
echo "\033[49;1;35mWann soll der Download starten? (Format: hhmmss)"
echo "\033[0m"
read u
if [ $u = "next" ]
then
ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
var=`head -n 1 ~/.log$$`
if [ $$ -ne $var ]
then
  echo "Nach dem letzten Download wird dieser Download gestartet."
fi
while [ $$ -ne $var ]
do
  sleep 1
    ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
    var=`head -n 1 ~/.log$$`
done
rm ~/.log$$
elif [ $u = "now" -o $u = "jetzt" -o $u = "Jetzt" ]
then
  echo "Der Download startet jetzt!"
else
while [ $(date +%H%M%S) -ne $u ]
do
    sleep 1
done
fi
wget -c $1
echo "Der Download ist beendet."


Der Name des Skripts sollte dl heißen, ansonsten muss man im Skript dl durch den Namen ersetzen.  
==== Log- und Eingabe-Optionen ====
{| class="wikitable gnu options big"
|-
! Unix !! GNU !! Beschreibung
|-
| -i DATEI || --input-file=DATEI || Liest URLs aus einer Text- oder HTML-Datei aus
|-
| || -nv--no-verbose || Gibt nur die wichtigsten Informationen aus
|-
| -q || --quiet ||Verhindert dass wget Informationen auf der Konsole ausgibt.  
|-
| -v || --verbose ||Vollständige Ausgabe aller Informationen. (Standard)
|}


Das Skript ausführbar machen und am besten in einem Pfad speichern der in $PATH enthalten ist. Dann kann der Download wie folgt gestartet werden:
==== Download-Optionen ====
dl http://example.com/folder/file
{| class="wikitable gnu options big"
 
Daraufhin erscheint die Frage, wann der Download starten soll.
 
Gültige Eingaben sind ''Jetzt'', ''jetzt'', ''now'' für sofort starten oder 134000 für 13:40 Uhr oder 121314 für 12:13 Uhr und 14 Sekunden. Ebenfalls möglich ist ''next''.
 
Damit startet er direkt nach den bisher gestarteten Downloads.
 
So kann man z.B. einen Download sofort starten, und bei 5 weiteren ''next'' eingeben. Dadurch werden alle der Reihe nach abgearbeitet.
 
===== Weitere Beispiele und Links =====
Weitere Beispiele findet man in der Manpage von wget. [http://wiki.ubuntuusers.de/cURL cURL] - wenn wget nicht mehr ausreicht
 
==== Optionen ====
{| style="border-spacing:0;margin:auto;width:17cm;"
|-
|-
| colspan="2"  style="border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | '''Log- und Eingabe-Optionen '''
! Unix !! GNU !! Beschreibung
| style="border:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Option
| -t <X> || --tries=<X> || Anzahl der Versuche <X>, die wget unternehmen soll eine Datei herunterzuladen.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Beschreibung
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-i DATEI--input-file=DATEI </tt>
| -c || --continue ||Versucht einen teilweise durchgeführten Download fortzusetzen.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Liest URLs aus einer Text- oder HTML-Datei aus.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-nv--no-verbose</tt>
| -N || || Lädt nur dann die Datei herunter, wenn die Datei neuer ist als eine Datei gleichen Namens auf dem Heimrechner.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Gibt nur die wichtigsten Informationen aus.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-q--quiet</tt>
| -O DATEINAME || --output-document=DATEINAME ||Schreibe in DATEI.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Verhindert dass wget Informationen auf der Konsole ausgibt.  
* Diese Option kann nicht mit der Option -N zusammen verwendet werden.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-v--verbose</tt>  
| || --user=<user> ||Gibt einen Usernamen für HTTP bzw.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Vollständige Ausgabe aller Informationen. (Standard)
* FTP Downloads an.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| colspan="2"  style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | '''Download-Optionen '''
| || --password=<password> || Gibt ein Passwort für HTTP bzw.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
* FTP Downloads an.  
|}
 
==== Verzeichnis-Optionen ====
{| class="wikitable gnu options big"
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-t <X>--tries=<X></tt>
! Unix !! GNU !! Beschreibung
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Anzahl der Versuche <X>, die wget unternehmen soll eine Datei herunterzuladen.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-c--continue</tt>
| -P VERZEICHNIS || ||Erlaubt die Angabe eines Verzeichnisses, wo die heruntergeladene(n) Datei(en) gespeichert werden soll(en).  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Versucht einen teilweise durchgeführten Download fortzusetzen.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-N</tt>
| || -nd--no-directories || Falls Dateien rekursiv heruntergeladen werden, so werden sie lokal in einem Verzeichnis gespeichert,  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Lädt nur dann die Datei herunter, wenn die Datei neuer ist als eine Datei gleichen Namens auf dem Heimrechner.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-O DATEINAME--output-document=DATEINAME</tt>
| -x || --force-directories ||Das Gegenteil von -nd.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Schreibe in DATEI. Diese Option kann nicht mit der Option <tt>-N</tt> zusammen verwendet werden.
* Es wird eine Verzeichnisstruktur erstellt.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|}
 
==== Optionen für den rekursiven Download ====
{| class="wikitable gnu options big"
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>--user=<user></tt>
! Unix !! GNU !! Beschreibung
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Gibt einen Usernamen für HTTP bzw. FTP Downloads an.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>--password=<password></tt>
| -r || --recursive ||Aktiviert den rekursiven Download von Daten.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Gibt ein Passwort für HTTP bzw. FTP Downloads an.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| colspan="2"  style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | '''Verzeichnis-Optionen '''
| -l <tiefe> || --level=<tiefe> || Anzahl der Schritte <tiefe>, die wget weiterverfolgen soll
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |  
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-P VERZEICHNIS</tt>
| -k || --convert-links || Konvertiere nach dem Download externe Links zu internen, so dass ein HTML-Dokument Offline betrachtet werden kann.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Erlaubt die Angabe eines Verzeichnisses, wo die heruntergeladene(n) Datei(en) gespeichert werden soll(en).
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-nd--no-directories</tt>  
| -A <acclist> || --accept <acclist> || Mit Kommata getrennte Liste an Datei-Erweiterungen, die heruntergeladen werden sollen
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Falls Dateien rekursiv heruntergeladen werden, so werden sie lokal in einem Verzeichnis gespeichert,
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-x--force-directories</tt>  
| -R <rejlist> || --reject <rejlist> || Mit Kommata getrennte Liste an Datei-Erweiterungen, die nicht heruntergeladen werden sollen
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Das Gegenteil von -nd. Es wird eine Verzeichnisstruktur erstellt.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|- style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;"
| colspan="3" | '''Optionen für den rekursiven Download von Daten '''
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-r--recursive</tt>
| -D DOMAINS || --domains=DOMAINS || Mit Kommata getrennte Liste an Domains, deren Links verfolgt werden sollen
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Aktiviert den rekursiven Download von Daten.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |  
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-l <tiefe>--level=<tiefe></tt>
| || --exclude-domains || Eine Liste an Domains, die nicht beachtet werden sollen.  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Anzahl der Schritte <tiefe>, die wget weiterverfolgen soll
|}
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
 
=== Parameter ===
 
=== Umgebungsvariablen ===
 
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-k--convert-links</tt>
! Wert !! Beschreibung
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Konvertiere nach dem Download externe Links zu internen, so dass ein HTML-Dokument Offline betrachtet werden kann.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|- style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;"
| colspan="3" | '''Weitere Optionen zum rekursiven Download '''
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-A <acclist>--accept <acclist></tt>
| 0 || Erfolg
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Mit Kommata getrennte Liste an Datei-Erweiterungen, die heruntergeladen werden sollen.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |  
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-R <rejlist>--reject <rejlist></tt>
| >0 || Fehler
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Mit Kommata getrennte Liste an Datei-Erweiterungen, die nicht heruntergeladen werden sollen.
|}
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
 
== Konfiguration ==
 
=== Dateien ===
{| class="wikitable options"
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>-D DOMAINS--domains=DOMAINS</tt>
! Datei !! Beschreibung
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Mit Kommata getrennte Liste an Domains, deren Links verfolgt werden sollen.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |
|-
|-
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | <tt>--exclude-domains</tt>
| ||  
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0.101cm;" | Eine Liste an Domains, die nicht beachtet werden sollen.
| style="border-top:none;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:0.05pt solid #000000;padding:0.101cm;" |  
|-
|-
| ||
|}
|}
<noinclude>
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
* [[cURL]]
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
=== Dokumentation ===
; Man-Page
# [https://manpages.debian.org/testing/wget/wget.1.en.html wget(1)]
=== Links ===
==== Projekt ====
==== Weblinks ====
{{DEFAULTSORT:wget}}
{{DISPLAYTITLE:wget}}
[[Kategorie:Netzwerk/Befehl]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Webclient]]
[[Kategorie:Linux/Datei/Download]]
</noinclude>






[[kategorie:Linux:Befehl]]
</noinclude>
[[kategorie:Netzwerkbefehle]]

Aktuelle Version vom 28. Juni 2025, 11:13 Uhr

Wget - HTTP-Downloads auf der Konsole

Beschreibung

Dateien nicht-interaktiv aus dem Internet herunterladen

Nicht interaktiv

wget kann im Hintergrund arbeiten, während der Benutzer nicht angemeldet ist.

  • Im Gegensatz dazu erfordern die meisten Webbrowser die ständige Anwesenheit des Benutzers, was bei der Übertragung einer großen Datenmenge ein großes Hindernis darstellen kann.
  • So können Sie einen Abruf starten und die Verbindung zum System trennen, während Wget die Arbeit beendet.
Protokolle

HTTP-, HTTPS- und FTP-Protokolle sowie den Abruf über HTTP-Proxys

Wget kann Links in HTML-, XHTML- und CSS-Seiten folgen

  • um lokale Versionen von entfernten Websites zu erstellen
  • wobei die Verzeichnisstruktur der ursprünglichen Website vollständig wiederhergestellt wird.
  • Dies wird manchmal auch als "rekursives Herunterladen" bezeichnet.
  • Dabei beachtet Wget den Robot Exclusion Standard (/robots.txt).
  • Wget kann angewiesen werden, die Links in den heruntergeladenen Dateien so umzuwandeln, dass sie auf die lokalen Dateien verweisen, damit sie offline betrachtet werden können.

Wget wurde so konzipiert, dass es auch bei langsamen oder instabilen Netzwerkverbindungen stabil arbeitet.

  • Wenn ein Download aufgrund eines Netzwerkproblems fehlschlägt, wird er so lange wiederholt, bis die gesamte Datei abgerufen wurde.
  • Wenn der Server eine Wiederholung unterstützt, weist es den Server an, den Download an der Stelle fortzusetzen, an der er unterbrochen wurde.

wget ist ein Programm, mit dem man direkt aus einem Terminal Dateien von FTP- oder HTTP-Servern herunterladen kann.

Das Programm ist sehr praktisch, wenn man in einem Shellscript Daten von Servern holen will, aber es ist auch ein guter Downloadmanager.

Downloads können zu einem späteren Zeitpunkt an der abgebrochenen Stelle fortgeführt werden.

Installation

sudo apt install wget

Anwendung

Dateidownload

Datei in aktuelles Verzeichnis herunterladen

wget https://example.com/folder/file

Anhalten und fortsetzen

Anhalten
[Strg] + c
Fortsetzen
wget -c [URL]

Ziel-Dateinamen

Dateien werden mit ihrem Originalnamen im aktuellen Verzeichnis gespeichert

  • Mit -O kann ein anderes Ziel angegeben werden
wget -O [file-name] [URL]

Bandbreite begrenzen

Während Sie wget verwenden, können Sie auch die Download-Geschwindigkeit begrenzen

  • Dies kann mit der Option -limit-rate geschehen, die einen Wert erfordert, der den Betrag in Form von Bytes pro Sekunde angibt
  • Die Menge kann in Bytes, Kilobytes mit dem Suffix "k" oder Megabyte mit dem Suffix "m" angegeben werden
wget -limit-rate==[amount] [URL]

Wenn man bei einem Download gleichzeitig noch schnell surfen will, ist es praktisch, die Downloadrate zu begrenzen

  • In diesem Beispiel wird sie auf 40 kB/s begrenzt:
wget --limit-rate=40000 https://example.com/folder/file

Timeout

Read Timeout ist die Zeitspanne (in Sekunden), in der wget nach Daten sucht (falls keine Daten empfangen werden), bevor der Download neu gestartet wird

  • Standardmäßig beträgt der Lese-Timeout 900 Sekunden, aber Sie können dies mit der Option -read-timeout ändern
wget -read-timeout==[time in seconds] [URL]

Download-Versuche

Wann immer Ihr Download aufgrund einer schlechten Internetverbindung oder eines anderen Fehlers unterbrochen wird, versucht das Tool, den Download selbst fortzusetzen

  • Standardmäßig versucht das Dienstprogramm 20 Mal und stoppt dann
  • Wenn Sie jedoch die Anzahl der Versuche erhöhen oder verringern möchten, können Sie dies mit der Befehlszeilenoption -t tun
wget -t [no.-of-retries-you want] [URL]

Fortschrittsanzeige

Wenn Sie möchten, können Sie auch die Download-Fortschrittsanzeige ändern, die wget in der Ausgabe anzeigt

  • Es gibt zwei Arten von Fortschrittsanzeigen: Balken (Standard) und Punkt
  • Wenn der Ausgang jedoch nicht auf dem Terminal (TTY) angezeigt wird, wird standardmäßig die Punktanzeige verwendet

Mit der Option -Fortschritt können Sie die Art des Kennzeichens wählen, falls Sie das Standardverhalten überschreiben möchten

wget --progress==dot [URL]

Bestimmte Dateien

Bestimmte Dateien herunterladen

Bilder

Allen Bilder herunterladen
wget -r --level 3 -np -p --user-agent="Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5" https://example.com/dir/
  • -p gibt vor, den Inhalt der Seite herunterzuladen
  • rekursiv (-r) bis zu einer
  • Tiefe von 3 (--level 3) vorgegangen wird,
  • Übergeordnete Verzeichnisse werden ignoriert (-np)
  • Außerdem gibt wget vor, als Mozilla unterwegs zu sein (--user-agent), da viele Seiten wget blockieren

Zudem ist es möglich, nur spezielle Dateitypen zu bekommen

  • Bei diesem Aufruf werden rekursiv die Dokumente nach *.jpg und *.png durchsucht und abgespeichert:
wget -r -A jpg,png https://example.com/dir/

Und mit diesem Befehl werden alle Dateien außer *.jpg und *.png heruntergeladen

wget -r -R jpg,png https://example.com/dir/

PDF-Dateien

Beispiel für PDF-Dateien
wget -p -r -nd -l 4 -e robots=off -A pdf https://example.com/

-e robots=off sorgt dafür, dass wget die robots.txt ignoriert und auch Links folgt, die in dieser Datei ausgeschlossen sind

Wiederholungsfunktion

  • Was ist, wenn die Internetverbindung abbricht?
  • Dann kann man den Download auch auf eine begrenzte oder unbegrenzte Anzahl von Wiederholungen schalten:
wget -t X https://example.com/folder/file

Das X steht wie für eine Zahl entsprechend der Anzahl der gewünschten Wiederholungen. 0 steht für unendlich

Referer

Referer ändern

Manche Downloadserver erlauben einen Download nur, wenn der Benutzer von einer bestimmten Adresse kommt

  • Normalerweise die, von der der Download startet
wget --referer=https://von.dieser.seite.com/me/ich https://example.com/folder/file

Im Hintergrund herunterladen

Bei großen Dateien bietet es sich an, den Download im Hintergrund zu starten

  • wget läuft dann eigenständig im Hintergrund und schreibt im Download-Verzeichnis eine log-Datei:
wget -b https://example.com/folder/file

Website speichern

wget -r -k -E -l 3 --random-wait --user-agent='Mozilla/5.0 (Windows 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1' https://example.com
Website offline speichern
wget \
-r \
-k \
-E \
-l 8 \
https://example.com
  1. wget
  2. Die Option -r sorgt dafür, dass rekursiv
    • Die Option -r sorgt dafür, dass rekursiv bis zu einer Tiefe von 8 (-l 8) vorgegangen wird*
  3. -k konvertiert die Links, so dass sie lokal funktionieren
  4. -E erzwingt die Endung .html für alle Dateien (ist dann nützlich, wenn .php- oder .asp-Seiten geladen werden
  5. bis zu einer Tiefe von 8 (-l 8) vorgegangen wird
  6. URL


Eine alternative Möglichkeit

  1. httrack

Tarballs entpacken

Tarballs automatisch entpacken

Um .tar.gz-Archive direkt zu entpacken ohne sie zwischenzuspeichern kann man folgenden Befehl nutzen

wget -q -O - https://example.com/folder/file.tar.gz | tar xvzf -

Die Option -q sorgt dafür, dass keine Informationen ausgegeben werden, die tar nicht verarbeiten könnte

  • Mit -O - wird wget angewiesen die Datei direkt auf die Standardausgabe STDOUT zu schreiben
  • Mittels | wird die Standardausgabe STDOUT auf die Standardeingabe STDIN für das nächste Programm (in diesem Fall tar) umgeleitet

Nun wird die Datei ganz normal entpackt, wobei x für extrahieren, v für verbose (also viele Infos ausgeben), z für dekomprimieren steht

  • Mit f - wird die Datei von der Standardeingabe STDIN (die in diesem Fall ja von wget kommt) gelesen
  • Nach diesem Befehl befinden sich nur die entpackten Dateien und Verzeichnisse, nicht jedoch die eigentliche .tar.gz-Datei im aktuellen Verzeichnis

Zeitsteuerung

Zeitsteuerung von Downloads

Um Downloads zum Beispiel um 13:40 Uhr zu beginnen, hilft folgendes Skript

#!/bin/sh
cd ~/Downloads
echo "\033[49;1;34mFolgende Datei soll heruntergeladen werden:"
echo "\033[49;1;32m"
echo "$1" | awk -F / '{print $NF}'
echo
echo "\033[49;1;35mWann soll der Download starten? (Format: hhmmss)"
echo "\033[0m"
read u
if [ $u = "next" ]
then
ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
var=`head -n 1 ~/.log$$`
if [ $$ -ne $var ]
then
 echo "Nach dem letzten Download wird dieser Download gestartet."
fi
while [ $$ -ne $var ]
do
 sleep 1
 ps -o etime,pid --no-headers -C dl | awk '{print $1,$2}' | sort -r | awk '{print $2}' > ~/.log$$
 var=`head -n 1 ~/.log$$`
done
rm ~/.log$$
elif [ $u = "now" -o $u = "jetzt" -o $u = "Jetzt" ]
then
 echo "Der Download startet jetzt!"
else
while [ $(date +%H%M%S) -ne $u ]
do
 sleep 1
done
fi
wget -c $1

echo "Der Download ist beendet."

Der Name des Skripts sollte dl heißen, ansonsten muss man im Skript dl durch den Namen ersetzen

Das Skript ausführbar machen und am besten in einem Pfad speichern der in $PATH enthalten ist

  • Dann kann der Download wie folgt gestartet werden:
dl https://example.com/folder/file

Daraufhin erscheint die Frage, wann der Download starten soll

  • Gültige Eingaben sind
    • Jetzt, jetzt, now für sofort starten
    • 134000 für 13:40 Uhr oder 121314 für 12:13 Uhr und 14 Sekunden
    • next, startet direkt nach den bisher gestarteten Downloads

So kann man

  • einen Download sofort starten, und bei 5 weiteren next eingeben
  • Dadurch werden alle der Reihe nach abgearbeitet

Problembehebung

Protokolldatei

Wenn Sie möchten, können Sie die Nachrichten/Informationen, die wget beim stdout produziert, auch in eine Protokolldatei umleiten

  • Dies kann mit der Kommandozeilenoption -o (Kleinbuchstaben) erfolgen
wget -o [log-filename] [URL]

Debug-Informationen

Wenn Sie möchten, können Sie auch den Befehl wget verwenden, um zusätzliche Informationen zum Downloadvorgang anzuzeigen

  • Diese Informationen sind nützlich für Debugging-Zwecke, wenn das Tool nicht ordnungsgemäß funktioniert
  • Auf die Funktion kann über die Befehlszeilenoption -debug oder -d zugegriffen werden
wget -debug [URL]

Aufruf

wget [URL]

Optionen

Log- und Eingabe-Optionen

Unix GNU Beschreibung
-i DATEI --input-file=DATEI Liest URLs aus einer Text- oder HTML-Datei aus
-nv--no-verbose Gibt nur die wichtigsten Informationen aus
-q --quiet Verhindert dass wget Informationen auf der Konsole ausgibt.
-v --verbose Vollständige Ausgabe aller Informationen. (Standard)

Download-Optionen

Unix GNU Beschreibung
-t <X> --tries=<X> Anzahl der Versuche <X>, die wget unternehmen soll eine Datei herunterzuladen.
-c --continue Versucht einen teilweise durchgeführten Download fortzusetzen.
-N Lädt nur dann die Datei herunter, wenn die Datei neuer ist als eine Datei gleichen Namens auf dem Heimrechner.
-O DATEINAME --output-document=DATEINAME Schreibe in DATEI.
  • Diese Option kann nicht mit der Option -N zusammen verwendet werden.
--user=<user> Gibt einen Usernamen für HTTP bzw.
  • FTP Downloads an.
--password=<password> Gibt ein Passwort für HTTP bzw.
  • FTP Downloads an.

Verzeichnis-Optionen

Unix GNU Beschreibung
-P VERZEICHNIS Erlaubt die Angabe eines Verzeichnisses, wo die heruntergeladene(n) Datei(en) gespeichert werden soll(en).
-nd--no-directories Falls Dateien rekursiv heruntergeladen werden, so werden sie lokal in einem Verzeichnis gespeichert,
-x --force-directories Das Gegenteil von -nd.
  • Es wird eine Verzeichnisstruktur erstellt.

Optionen für den rekursiven Download

Unix GNU Beschreibung
-r --recursive Aktiviert den rekursiven Download von Daten.
-l <tiefe> --level=<tiefe> Anzahl der Schritte <tiefe>, die wget weiterverfolgen soll
-k --convert-links Konvertiere nach dem Download externe Links zu internen, so dass ein HTML-Dokument Offline betrachtet werden kann.
-A <acclist> --accept <acclist> Mit Kommata getrennte Liste an Datei-Erweiterungen, die heruntergeladen werden sollen
-R <rejlist> --reject <rejlist> Mit Kommata getrennte Liste an Datei-Erweiterungen, die nicht heruntergeladen werden sollen
-D DOMAINS --domains=DOMAINS Mit Kommata getrennte Liste an Domains, deren Links verfolgt werden sollen
--exclude-domains Eine Liste an Domains, die nicht beachtet werden sollen.

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Man-Page
  1. wget(1)

Links

Projekt

Weblinks