wget aufbohren: dotfiles per –mirror mitkopieren

Ich benutze GNU wget gerne um verschiedene Websites per FTP mit dem Parameter --mirror zu spiegeln. Leider werden dabei versteckte Dateien (so genannte dotfiles) wie etwa .htaccess nicht berücksichtigt. Nach eingehendem Studium der manpage stellte ich enttäuscht fest, dass wget tatsächlich keine Option zur Lösung des Problem vorsieht.

Aber zum Glück lässt sich GNU wget als Open-Source-Software an die eigenen Bedürfnisse anpassen, so dass ich folgenden q&d Patch „entwickelte“.

— wget-1.10.2_orig/src/ftp-basic.c 2005-06-19 15:47:10.000000000 +0200
+++ wget-1.10.2/src/ftp-basic.c 2007-04-21 14:17:33.000000000 +0200
@@ -977,7 +977,7 @@
uerr_t err;

/* Send LIST request. */
– request = ftp_request („LIST“, file);
+ request = ftp_request („LIST -a“, file);
nwritten = fd_write (csock, request, strlen (request), -1.0);
if (nwritten < 0) { [/code]
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-1.10.2.tar.gz
tar -xzf wget-1.10.2.tar.gz
patch -p0 < wget-1.10.2_dotfiles ./configure make make install

Es genügt also LIST -a anstatt LIST an den FTP-Server zu senden, um wget zu überreden auch dotfiles rekursiv zu kopieren.
Der Patch ist – wie gesagt – ein übler Hack, der mir zur schnellen Lösung eines Problems dienen solle. Für mich funktioniert er gut. Perspektivisch wäre es jedoch wünschenswert durch einen Parameter zwischen LIST und LIST -a wählen zu können. Nach meiner mündlichen Diplomprüfung werde ich das sauber implementieren und als Feature vorschlagen.

EDIT 16:40: Hier gibt es einen sauberen Patch, allerdings nur für Version 1.9.1. Doch es sollte nicht allzu schwer fallen ihn auf die aktuelle Version zu portieren.

Eine Antwort auf „wget aufbohren: dotfiles per –mirror mitkopieren“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.