![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
Zu BefehlFischers Fritz fischt frische Web Sites -- mit Wgetvon Heike Jurzik |
|
Das Programm GNU Wget ist ein praktisches Tool, um Dateien aus dem World Wide Web auf den eigenen Computer zu übertragen und sie dort offline anschauen zu können. Auf HTTP und FTP aufsetzend kann man beispielsweise ganze Archive oder Homepages spiegeln. Auch mit einer schlechten Anbindung ans Internet eignet sich das Programm hervorragend zum Download im Hintergrund: Nicht nur ein "Anknüpfen" an eine abgebrochene Übertragung, sondern auch ein Update ist möglich -- Wget kann aufgrund von Timestamps erkennen, ob es eine aktuelle Version einer Datei schon heruntergeladen hat. Sollte das Programm noch nicht auf Ihrem Computer installiert sein, können Sie eine aktuelle Version über die Seite http://www.gnu.org/software/wget/wget.html finden, bei den meisten Distributionen ist Wget jedoch enthalten.
Der Standardaufruf von Wget ist wget [options] URL (Uniform Resource Locator). Bevor es in die Details zu den Optionen geht: Wget ist ein GNU-Tool, d. h. alle Parameter haben eine lange (wget --version) und eine kurze Form (wget -V). Mit wget -h (oder --help) bekommen Sie eine ausführliche Kommandoübersicht. Sollten die vielen Optionen einfach durchscrollen, "pipen" Sie die Ausgabe einfach durch einen Pager Ihrer Wahl (z. B. less oder more): wget --help | less.
Starten Sie nun Ihren ersten wget-Aufruf; dazu legen Sie am besten ein Verzeichnis (z. B.: mkdir wgettest) in Ihrem Home an, wechseln hinein (cd wgettest) und tippen:
huhn@asteroid:~/wgettest$ wget http://www.linux-user.de/
--16:15:16-- http://www.linux-user.de:80/
=> `index.html'
Connecting to www.linux-user.de:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 8,208 [text/html]
0K -> ........ [100%]
16:15:18 (9.01 KB/s) - `index.html' saved [8208/8208]
Direkt auf die Konsole bekommen Sie Meldungen über die aktuellen Aktivitäten des Programmes. Hier können Sie also sehen, dass zum Web Server des LinuxUsers verbunden wird (80 ist der Standard-Port für HTTP) - auf Ihren Computer wird die Datei index.html heruntergeladen. Bilder und Unterverzeichnisse sind nicht mit eingeschlossen. Möchten Sie eine Stufe tiefer gehen, probieren Sie die Option -r (für --recursive). Jetzt folgt Wget den Links und der Verzeichnisstruktur der zu spiegelnden Seiten. Wichtig ist in diesem Zusammenhang der Parameter -l num (--level=num), wobei num für die Anzahl der Level steht.
Ein Aufruf der Form wget -r --level=1 http://www.linux-user.de/ bewirkt etwa, dass die Unterverzeichnisse Home, Info, ausgabe und pics mit dabei sind. Praktisch: Es wird dabei ein Verzeichnis www.linux-user.de angelegt (in diesem Beispiel sollten Sie darüberhinaus die Verzeichnisse www.linux-community.de und www.linux-magazin.de mit jeweils einem Unterverzeichnis finden, da von der User-Startseite aus Links zu diesen Domains existieren). Als Standard-Level für die Rekursion ist 5 vorgegeben.
Ist ein Download mal unterbrochen worden, können Sie mit Hilfe des Parameters -c (--continue) direkt an den vorigen anknüpfen. Vor allem bei großen Datenmengen ist das sehr praktisch. Es spielt übrigens keine Rolle, ob die auf Ihrem Rechner liegenden Dateifragmente mit Wget oder einem anderen Programm heruntergeladen wurden.
Um bestimmte Seiten in regelmäßigen Abständen immer wieder zu sichern, gibt es die Option -N (--timestamping): Geben Sie Wget diesen Parameter mit auf den Weg, wird bei jeder Datei das Datum mit der Datei auf Ihrem Rechner verglichen. Sollte bei der lokalen Kopie also der gleiche "Zeitstempel" vorhanden sein, wird dieses File beim Download ausgelassen:
huhn@asteroid:~/wgettest$ wget -r -l1 -N http://www.uni-koeln.de/
--17:00:27-- http://www.uni-koeln.de:80/
=> `www.uni-koeln.de/index.html'
Connecting to www.uni-koeln.de:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 7,490 [text/html]
Local file `www.uni-koeln.de/index.html' is more recent, not retrieving.
Auf diese Weise laden Sie nur Dateien herunter, die seit dem letzten Abgleich verändert wurden - Sie sparen Zeit und Datenvolumen beim Transfer. Mit der Option -Y on/off (--proxy=on/off) können Sie einen Proxy-Server zwischenschalten. Dabei greift Wget auf die Umgebungsvariable $http_proxy zurück, die Sie vorher eingestellt haben sollten. Wer zusätzlich $LANG auf "de_DE" setzt, erhält sogar deutsche Ausgaben:
huhn@asteroid:~/wgettest$ export http_proxy="proxy.mydomain.de:8080"
huhn@asteroid:~/wgettest$ export LANG=de_DE
huhn@asteroid:~/wgettest$ wget http://www.linux-user.de
--14:59:12-- http://www.linux-user.de:80/
=> `index.html'
Verbindungsaufbau zu proxy.mydomain.de:8080... verbunden!
Proxy Anforderung gesendet, warte auf Antwort... 200 OK
[...]
Falls Ihr Proxy einen Login mit Benutzername und Passwort erwartet, kann Wget auch dies leisten:
wget -r -l1 --proxy=on --proxy-user=huhn --proxy-passwd=IhrPasswort http://...
Sie haben gerade schon bemerkt, dass jeder wget -r-Aufruf zunächst ein Verzeichnis mit dem Namen der WWW-Seite anlegt, bevor dorthinein kopiert wird. Dies können Sie durch die Angabe wget -nd (--no-directories) umgehen; dann wird die Verzeichnisstruktur der Site nicht mit übernommen. Vorsicht ist hier jedoch geboten bei Dateien mit gleichen Namen: sie werden einfach überschrieben. Der genau entgegengesetzte Parameter zu -nd ist -x (--force-directories). Hier wird die Verzeichnisstruktur der Seite komplett übernommen, selbst wenn das sonst nicht der Fall gewesen wäre. Last but not least in dieser Reihe steht die Option -nH (--no-host-directories) - die Verzeichnisstruktur vom Server wird übernommen, aber der Hostname nicht mit berücksichtigt, d. h. statt ins Unterverzeichnis www.uni-koeln.de wird diesmal ins aktuelle Verzeichnis gespiegelt.
Oft kommt es vor, dass Sie von einem Server nur die Bilddateien herunterladen möchten. Wildcards sind unter Wget nicht möglich, d. h. es gibt keinen Aufruf der Form wget -r -l1 *.jpg http://www.uni-koeln.de. Der Parameter -A "liste" (--accept) schafft Abhilfe. In der "liste" definieren Sie die Dateitypen, Beispiel:
wget -r -l1 -A jpg,gif,png http://www.linux-user.de
Anschließend finden sich im Verzeichnis nur noch diese Bilddateien und eine index.html -- die braucht Wget, um überhaupt zu den Bildern "hinzufinden", da das HTTP-Protokoll keinen List-Befehl zum Anzeigen des Verzeichnisinhalts kennt. Hinter den Kulissen fischt Wget eigentlich alle Dateien, entfernt diese aber wieder. Das können Sie am Output auf der Konsole erkennen:
... 18:03:19 (8.73 KB/s) - `old-news.html' saved [8584/8584] Removing old-news.html since it should be rejected. ...
Natürlich gibt es auch eine genau entgegengesetzte Option: Mit -R "liste" (--reject) können Sie Dateierweiterungen ausschließen. Ein Aufruf wget -r -l1 -R avi,mpg,mp3 http://www.linux-user.de würde, sofern vorhanden, diese Dateitypen aussparen - praktisch, wenn man auf den Download großer Files verzichten möchte. Ein Download-Limit können Sie darüber hinaus mit dem Parameter -Q (--quota) setzen. Diese Begrenzung bezieht sich auf die Gesamtmenge der Daten und wird standardmäßig in Bytes angegeben. Eine Begrenzung in Kilobytes oder Megabytes ist auch möglich - dazu wird k oder m an die Zahl angehängt: wget -r -l1 -Q5m http://www.linux-user.de beschränkt den Download auf 5 MB.
Fast alle Parameter, die Sie wget beim Start mitgegeben haben, können Sie in eine Konfigurationsdatei eintragen. Diese ist eine "versteckte" Datei in Ihrem Home-Verzeichnis mit dem Namen .wgetrc und könnte beispielsweise so aussehen:
tries = 20 reclevel = 5 timestamping = on dirstruct = on
Hier werden direkt mehrere Dinge definiert: "tries" bezeichnet die Anzahl der Download-Versuche, falls der Server nicht erreichbar ist. In diesem Fall versucht Wget 20 mal, eine Verbindung aufzubauen. Der "reclevel" ist der Rekursions-Level, den Sie vorher mit der Option -l verändert haben. Mit der Option "timestamping = on" können Sie auf den Parameter -N beim Wget-Aufruf verzichten. Wird "dirstruct" wie hier eingeschaltet, zwingen Sie Wget, auf jeden Fall eine Verzeichnisstruktur anzulegen, selbst wenn wenn es sich um nur eine Datei handelt.
Mit dem GTransferManager und KWebGet gibt es zwei Tools, die direkt auf Wget aufsetzen. GTransferManager basiert auf den Gtk-Libraries - das README verrät, dass mindestens Gtk 1.2.x auf dem System vorhanden sein sollte. Da sich auf dem Web-Server nur Red-Hat-7-RPMs befinden, beschreiben wir kurz die Installation aus den Sourcen: Nach dem Entpacken des Archivs (tar xzf /tmp/gtm-0.4.9.tar.gz) und Wechsel in das neue Verzeichnis gtm-0.4.9 erzeugt der übliche Dreischritt aus den Befehlen ./configure, make und make install das lauffähige Programm. Die Übersetzung der Elemente ins Deutsche ist nicht sonderlich gut gelungen, weshalb es sich empfiehlt, das Programm in Englisch zu starten (vor dem Aufruf export LANG=en_US).
Nach erfolgreicher Installation können Sie das Programm z. B. aus einem Xterm heraus mit dem Aufruf gtm & starten. Klicken Sie zunächst auf Settings/Preferences und konfigurieren Sie das Programm nach Ihren Wünschen - mit dem Hintergrundwissen, das Sie sich über Wget angeeignet haben, ist das kein Problem mehr. Sie können einen Proxy-Server auswählen (s. bei Wget die Optionen zu --proxy=), ein Download-Verzeichnis auswählen, die Anzahl der Versuche definieren und als spielerische Ergänzung den "Look" vom Programm und einen Sound einstellen. Zum Download fügen Sie mit New eine neue URL hinzu und klicken dann auf Start. Rekursive Downloads beherrscht GTM aber noch nicht.
Fortgeschrittener ist KWebGet: Ein Download-Assistent führt Sie in mehreren Schritten durch die Abfrage der relevanten Informationen. Dabei ist eines der möglichen "Projekte" das Erstellen eines Mirrors, also das vollständige Spiegeln einer Web-Seite.
Nach der Zwiesprache mit dem Download-Assistenten ist das aktuelle Download-Projekt noch in einem Dialog mit sieben Karteikarten detailliert konfigurierbar; die meisten von Wget bekannten Optionen finden Sie hier wieder, so etwa Einstellungen zu Rekursions-Level und Wiederholversuchen oder Dateitypen (Abbildung 4). Selbst eine Zeitverzögerung kann hier vorgegeben werden: Interessant, falls Sie einen größeren Download planen aber während der Arbeitszeit nicht die Bandbreite Ihres Internet-Zugangs schmälern wollen.
Die grafischen Frontends zu Wget sind leicht zu bedienen. Es ist jedoch wie bei allen Programmen, die in "Zu Befehl" vorgestellt werden, immer wieder die Kommandozeile, die die vielfältigeren Möglichkeiten bietet. Haben Sie sich einmal mit den langen Befehlsaufrufen angefreundet, entdecken Sie schnell die Vorteile, z. B. bei der Kombination von Befehlen. In Zusammenarbeit mit dem Programm screen (LinuxUser 01/2001, Zu Befehl) starten Sie Wget für größere Downloads auf einem entfernten Rechner im Hintergrund und trennen die Verbindung wieder. Insbesondere der Download-Assistent von KWebGet verdeutlicht zudem: Der Komfort des GUI-Tools ist hoch, aber es dauert auch Ewigkeiten, sich durch die Dialoge zu klicken. (hej/hge)
| Infos |
|
[1] Wget: http://www.gnu.org/software/wget/wget.html |