

	\documentclass[a4paper,11pt]{article}
	\usepackage{ngerman}
	\usepackage[latin1]{inputenc}
	\setlength\parskip{\medskipamount}
	\setlength\parindent{0pt}
	\begin{document}

	
 % wget
 % Copyright Johnny Graber
 % 
 % $Name: $
 % $Revision: 1.6.2.8 $
 % $Source: /cvsroot/selflinux/tutorial/software/internet/web/tools/wget/wget,v $
 % SelfLinux-0.7.2
 %
 % Diese Datei ist Teil von SelfLinux http://www.selflinux.de
 %
 %%% $Id: wget,v 1.6.2.8 2002/11/25 18:43:34 jgraber Exp $

	\title{wget}


	
	    \author{Johnny Graber}
	    %\url{mailto:linux@jgraber.ch}
    

	\maketitle

	
	
	%\ref{../index.tex}
	
		%\ref{andere_dienste1.tex}
		Internet
		%\ref{Web.tex}
		Web
		%\ref{Web-Tools.tex}
		Tools
	\ref{wget}

    \par{Layout}
    Torsten Hemm
	    %\url{mailto:T.Hemm@gmx.de}
    
 
	\tableofcontents{}

        
	\section{Der erste Einsatz von wget} \label{d47e50}
        
  
 
  
  \par
  
{\bf wget} wird mit jeder halbwegs aktuellen Distribution
mitgeliefert. Sollte es tatsächlich nicht installiert sein, findet man 
es auf  
 http://www.gnu.org/software/wget/ 
  
  
  
  \par
  
Der Aufruf von {\bf wget} lautet
  
  
  
   \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget [Optionen] URL
    \end{scriptsize} \end{tt} \linebreak 
  

  
  \par
  
Will man sich das Basisrelease von Selflinux besorgen, lautet 
der Aufruf
  

  
   \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget http://www.selflinux.de/basisrelease.tar.gz
    \end{scriptsize} \end{tt} \linebreak 
  

  
  \par
  
Sollte der Download ausirgend einem Grund abbrechen, kann er 
mit der Option {\bf -c wieder} aufgenommen werden:
  

  
   \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget -c http://www.selflinux.de/basisrelease.tar.gz
     \end{scriptsize} \end{tt} \linebreak 
    \begin{tt} \begin{scriptsize} --18:35:45--\verb+  +http://www.selflinux.de/basisrelease.tar.gz\end{scriptsize} \end{tt} \linebreak
	\linebreak\begin{tt} \begin{scriptsize} \verb+  +\verb+  +\verb+  +\verb+  +\verb+  + =\verb+>+ `basisrelease.tar.gz'\end{scriptsize} \end{tt} \linebreak
	\linebreak\begin{tt} \begin{scriptsize} Auflösen des Hostnamen »www.selflinux.de«.... fertig.\end{scriptsize} \end{tt} \linebreak
	\linebreak\begin{tt} \begin{scriptsize} Verbindungsaufbau zu www.selflinux.de[134.100.212.78]:80... verbunden.\end{scriptsize} \end{tt} \linebreak
	\linebreak\begin{tt} \begin{scriptsize} HTTP Anforderung gesendet, warte auf Antwort... 206 Partial Content\end{scriptsize} \end{tt} \linebreak
	\linebreak\begin{tt} \begin{scriptsize} Länge: 696,644 (noch 122,068) [application/x-gzip]\end{scriptsize} \end{tt} \linebreak
    \linebreak\begin{tt} \begin{scriptsize} 100%[===============================\verb+>+] 696,644\verb+  + 63.75K/s\verb+  +ETA 00:00\end{scriptsize} \end{tt} \linebreak
    \linebreak\begin{tt} \begin{scriptsize} 18:35:47 (63.75 KB/s) - »basisrelease.tar.gz« gespeichert [696644/696644]\end{scriptsize} \end{tt} \linebreak
  

  
  \par
  
{\bf wget} zeigt einem alle wichtigen Optionen auf einen 
 Blick an. Der
Statusbalken zeigt, wie weit man schon vorangeschritten ist, 
danach folgt die Angabe der aktuellen Geschwindigkeit und hinter 
ETA steht die verbleibende Zeit.
  

  
  \par
  
Die Option {\bf -c} ist gerade bei grossen Dateien wie
ISO-Images sehr angenehm. Bricht der Download über einen Webbrowser
bei 600 von 650 MB ab, ist die Datei verloren. Mit {\bf wget}
genügt das {\bf -c} und schon wird dort weitergemacht, wo 
der Unterbruch statt fand.
  
 \section{Spiegeln von Webseiten} \label{d47e143}
        
	 
  
 
  
  \par
  
Mit {\bf wget} können nicht nur einzelne Dateien gespeichert, 
sondern auch ganze Seiten gespiegelt werden. Die dafür zu verwendende 
Option ist {\bf -r}. Damit wird bei der angegebene Seite 
rekursiv den Links gefolgt. Standardmässig folgt {\bf -r}
den Links 5 Ebenen entlang. Dabei wird nicht unterschieden, ob die Seite
vom gewünschten Server stammt, oder nicht. 
  
  
  
  \par
  
Die Sache mit den Ebenen ist am Anfang recht mühsam zu verstehen.
Man muss sich dies wie eine gewöhnliche Sitzung mit einem Browser
vorstellen. Jeder Link, den man anklickt, öffnet eine neue Ebene.
Ein {\bf -r} bedeutet also, das man von der Startseite
5 tiefer gelegene Seiten aufrufen kann.
  

  
  \par
  
Weist ein Link auf der 2. Seite zu
www.linux.de, wird auch dort
wiederum den Links gefolgt und die Dateien auf dem eigenen 
Rechner abgelegt. Je nach Seiten kann dies sehr schnell mühsam 
werden.
  

  
  \par
  
Die Option {\bf -l num} steht für ''level'' und passt 
die Tiefe von {\bf -r} an. {\bf num} muss durch eine beliebige
positive Zahl ersetzt werden. 
  

  
   \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget -r -l 2 www.selflinux.de
    \end{scriptsize} \end{tt} \linebreak 
  
  
  
  \par
  
Speichert alle Dateien, die über eine andere Datei verlinkt sind,
im Verzeichnis {\bf www.selflinux.de.}
Die gefundene Verzeichnisstruktur wird dabei übernommen. Allerdings wird 
nur 2 Ebenen tief gesucht, was bei grossen Kapiteln dazu führt, das 
nicht alle Dateien heruntergeladen werden.
  

  
  \par
  
{\bf wget} ist gut um sich schnell einige Seiten zu holen. Für ein 
effektives Spiegeln eines Servers sollte man sich ein anderes 
Tool suchen. 
  
 \section{Das Verhalten von wget anpassen} \label{d47e206}
        
	  
   
   
   \subsection{Unterdrücken und Erzwingen von Ordnern} \label{d47e211}
        
    
    
    
  \par
  
Bei dem Aufruf von {\bf wget -r} wird immer ein Ordner mit
dem Namen der Webseite erstellt. Will man dies verhindern, lautet der 
Aufruf {\bf wget -r -nd}.
Aber Vorsicht mit gleich lautenden Dateinamen: Sollte ein Name
schon vorhanden sein, überschreibt {\bf wget} den Inhalt 
ohne zu fragen.
    

    
  \par
  
Will man das Anlegen der Ordner aus irgendeinem Grund erzwingen,
lautet die Option {\bf -x} oder in der langen Version 
{\bf --force-directories}.
Die Verzeichnisstruktur wird nun komplett übernommen.
    

    
  \par
  
Neben diesen beiden bietet {\bf wget} noch eine dritte 
Möglichkeit. Hierbei wird die Verzeichnisstruktur übernommen, doch 
wird der Ordner mit dem Domainnamen weg gelassen. Dies erreicht man 
mit {\bf -nH (--no-host-directories)}.
    
     

   \subsection{Nur bestimmte Dateitypen herunterladen} \label{d47e247}
        
    
    
     
  \par
   
Wildcards können bei {\bf wget} nicht verwendet werden.
Es gibt aber dennoch eine Möglichkeit, nur spezielle Dateitypen zu bekommen.
Dafür muss man eine Liste mit {\bf -A (--accept)} erstellen.
     

     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget -r -A jpg,png http://www.selflinux.de
       \end{scriptsize} \end{tt} \linebreak 
     

     
  \par
  
Bei diesem Aufruf werden rekursiv die Dokumente nach {\bf *.jpg} und 
{\bf *.png} durchsucht und abgespeichert. Da HTTP keinen List-Befehl
kennt, muss {\bf wget} zuerst alle HTML-Dateien herunterladen,
um an die Links zu kommen. Sobald die Bilder gefunden sind, werden 
die HTML-Dateien gelöscht.
     	

     
  \par
  
Der Umkehrbefehl von {\bf -A} ist {\bf -R (--reject)}.
Sollen alle Dateien, ausser {\bf *.jpg} und {\bf *.png} geholt
werden, lautet der Aufruf
     
     
     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$    
wget -r -R jpg,png http://www.selflinux.de
       \end{scriptsize} \end{tt} \linebreak 
     
    

    \subsection{Grössenbegrenzung des Downloads} \label{d47e301}
        
     

     
  \par
  
Auf die Grösse des Downloads kann aber nicht nur über {\bf -A
} und {\bf -R} Einfluss genommen werden, sondern
auch mittels {\bf -Q (--quota)}. Die Grössenangabe erfolgt
in Bytes und legt den Wert für den ganzen Download fest. 
Da die Angabe grosser Werte in Bytes mühsam ist, kann man auch 
andere Einheiten verwenden. Für Megabytes wird an die Zahl ein m
angehängt, für Kilobytes dient ein k.
     
     
     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget -r -nH -Q5m http://www.selflinux.de
       \end{scriptsize} \end{tt} \linebreak 
     
     
     
  \par
   
Damit werden maximal 5 Megabyte Daten von 
www.selflinux.de geholt und im aktuellen Verzeichnis abgelegt. 
Sind weniger als 5 MB Daten vorhanden, kann {\bf wget} ja nicht
das ganze Quota ausnutzen.
     
    

    \subsection{Dateien vor Download auf Datum prüfen} \label{d47e334}
        
     
     
     
  \par
      
Holt man sich öfters Daten vom gleichen Server, möchte man ja nur
die neuesten Dateien herunterladen. Mit {\bf -N (--timestamping)}
veranlasst man {\bf wget}, vor dem Download das Datum der Datei auf dem
Server mit dem der lokalen Kopie zu vergleichen. Nur wenn die 
lokale Datei veraltet ist, beginnt wget mit dem Download.
     

     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$ 
wget -N http://www.selflinux.de
       \end{scriptsize} \end{tt} \linebreak 
      
    

    \subsection{Verwenden eines Proxy-Servers} \label{d47e355}
        
     

     
  \par
  
Will man einen Proxy-Server verwenden, genügt die Option 
{\bf -Y on/off}. Dabei wird auf die Umgebungsvariable 
{\bf \$http\_proxy} ausgelesen. Diese muss natürlich gesetzt werden:
     

     
      \begin{tt} \begin{scriptsize} user@linux \~{}/ \$  
export http\_proxy=''http://meinproxy.provider.de:3128''
       \end{scriptsize} \end{tt} \linebreak  
      
    
   \section{Die Dateien /etc/wgetrc und .wgetrc} \label{d47e380}
        
    
   
    
  \par
  
Eine grosse Anzahl der Startoptionen können in diese 
Konfigurationsdateien eingetragen werden. Die Datei 
{\bf /etc/wgetrc} gilt für alle User, die 
{\bf \~{}/.wgetrc} nur für den jeweiligen Benutzer.
    
    
    
  \par
  
Hier ein kleines Beispiel des Aufbaus einer solchen Datei:
    

    \begin{tabular}{|l|}
                  \hline
                  \begin{tt} 
        
.wgetrc
     \end{tt} \\ 
                  \hline
                  \begin{minipage}{130mm} 
                  \begin{scriptsize} 
                  \begin{verbatim} 
        
      
###
### Sample Wget initialization file .wgetrc
###

# You can set retrieve quota for beginners by specifying a value
# optionally followed by 'K' (kilobytes) or 'M' (megabytes).  The
# default quota is unlimited.
#quota = inf

# The "wait" command below makes Wget wait between every connection.
# If, instead, you want Wget to wait only between retries of failed
# downloads, set waitretry to maximum number of seconds to wait (Wget
# will use "linear backoff", waiting 1 second after the first failure
# on a file, 2 seconds after the second failure, etc. up to this max).
waitretry = 10

# You can lower (or raise) the default number of retries when
# downloading a file (default is 20).
#tries = 20

      
     \end{verbatim} 
                  \end{scriptsize} 
                  \end{minipage} \\
                  \hline
                  \end{tabular}
   \section{Übersicht der wichtigsten Optionen} \label{d47e410}
        
    



    
    %table
    \begin{tabular}{|l|l|l|}
    \hline 
            
               
		\begin{minipage}{60mm}
              -V
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --version
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Gibt die Version an
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -h
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --help
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Zeigt die Hilfe an
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -c
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --continue
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Nimmt den Download wieder auf
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -N
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --timestamping
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Besorgt nur neuere Dateien, als lokal vorhanden sind
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -r
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --recursive
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Lädt Dateien rekursiv herunter
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -o
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --output-file=datei
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Speicher die Ausgabe in datei
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -i
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --input-file=datei
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Liest URLs aus datei
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -q
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --quiet
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Unterdrückt die Ausgabe
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -v
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --verbose
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Zeigt ausführlicher an, was wget macht
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -Y on/off
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --proxy=on/off
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Proxy ein- oder ausschalten
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -Q2m
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --quota=2m
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Beschränkt den Download auf 2 MB
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -nd
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --no-directories
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Erstellt keine Verzeichnisse
		\end{minipage}
	      \\ \hline 
            
               
		\begin{minipage}{60mm}
              -nH
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              --no-host-directories
		\end{minipage}
	      & 
            
               
		\begin{minipage}{60mm}
              Erstellt Ordner, lässt aber das Hostverzeichnis weg
		\end{minipage}
	      \\ \hline
    \end{tabular}
   	


 
  \par
  
Für die ganze Liste siehe {\bf man wget}
    
   \section{Grafische Frontends} \label{d47e581}
        
    
 
   
  \par
  
Bei all seinen Optionen ist {\bf wget} ein idealer 
Kandidat für ein Frontend. Mit {\bf gtm} und 
{\bf kwebget} gibt es zwei bekanntere Programme. 
Da die Bedienung mit grundlegenden Kenntnissen von {\bf wget
} problemlos möglich ist, wird hier auf eine detaillierte 
Einführung verzichtet. Für programmspezifische Infos schaut man sich
am besten die den Tools beigelegte Hilfe an.
   

   \begin{list}{*}{}
    
	\item 
gtm: 
http://gtm.sourceforge.net/
   
   
	\item 
kwebget: 
http://www.kpage.de/de/
   
  \end{list} 
 
	\ref{inhalt.tex}


	\end{document}
	
