wGET - suchen/ersetzen

Sonic_cgn

mit wenig Erfahrung
Hallo,

ich habe ein Webseite gemanaged über ein Java-CMS.
Zur Sicherheit möchte ich alle Öffentlichen Seiten nochmals auf einem anderen Server statisch sichern. Als Backup sollte mal etwas mit dem CMS oder dem Server passieren. DDOS-Attacke o.ä.

Ich habe mir alle Seiten per "wget -r http://www.blabla.dee" gezogen. Soweit so gut.

Nun steht vom CMS aus in jeder HTML-Datei im Header <base ="http://URL.de" />

Dieses würde ich gerne via Suchen/ersetzen entfernen oder zumindest ein leeres Value setzen.

Weiß jemand wie das mit wGet geht oder kann ich das per PIPE irgendwie in Linux erledigen. Ich schaffe es leider nicht. Wäre nett, könnte mir da jemand auf die sprünge helfen.

Cu Sonic
 
Hi,

bist du dir sicher, dass es mit wget getan ist?

Du musst bedenken: Sobald du dynamische Seiten hast (ASP,PHP,etc.) werden die Skripte nicht übertragen sondern nur der Status des Aufrufes. Das heißt, dass deine gesamte Logik (z.B.) beim CMS oder ähnlichem verloren geht.

Greetz
 
Das ist mit sed möglich. Allerdings solltest du dir, wie von JaEgErmEistEr bereits erwähnt, überlegen, ob wget wirklich eine passende Lösung ist.
 
Ja. Ich bin mir da ganz sicher.
Ich möchte NUR eine Sicherung erstellen. Diese soll autark sein.

zwischenzitlich habe ich folgendes gefunden:
Code:
perl -pi -e '~s|http:\/\/www\.seite\.de||' *

Dies macht genau das was ich will und das sogar sehr schnell. Allerdings bekomme ich es einfach nicht hin, dass dies auch rekursiv funktioniert.

Es sind sehr viele Unterverzeichnisse vorhanden. Die sollten natürlich auch durchsucht werden.
Hat hier jemand was parat. Ich habs noch mit "find . -type f" probiert. das hat aber leider nicht geklappt.
 
Wie gesagt, ich würd's mit sed machen:

Code:
cd /backup/pfad
find ./ -type f -print0 | xargs -0 sed -i 's/http\:\/\/www\.seite\.de//g'

PS: Du kannst auch bei sed andere Symbole zum Trennen nehmen. Um es an dein Perl-Beispiel anzupassen z.B.: sed -i 's|http\:\/\/www\.seite\.de||g'

PPS: Zur Erklärung: Das "-i" (inplace) sorgt dafür, dass der String direkt in der Datei ersetzt wird. Das "s" am Anfang bedeutet nur so viel, wie "Suchen und Ersetzen" und das "g" am Ende steht für "global", da sed sonst nach dem ersten Treffer in einer Datei stoppen würde. In deinem Fall kann man letzteres wohl weglassen. "find" erklärt sich ja eigentlich von selbst und das "-print0" und "-0" bei xargs sorgt dafür, dass das Ganze auch mit Leerzeichen in den Dateinamen noch anständig funktioniert.
 
Last edited by a moderator:
Öhm, kleiner Einwurf meinerseits: Du sagst es ist ein CMS, also wie wäre es mit Datenbank Backup und einer kompletten Kopie der CMS-Ordner per rSync oder FTP?
Ich mein, wenn du Vollzugriff hast, wozu dann dieses umständliche gefrickel?

Just my 2 cents,
delta544
 
Ich habe gerade keine Manpage vor mir - aber wenn du statt "-r" den Parameter "-m" benutzt macht wget das m.W. automatisch. Und holt auch die zugehörigen JavaScript / CSS-Dateien u.s.w. mit dazu.

@delta554:
Es ist garnicht mal so abwegig - wenn ich die Seite nur während einer DDoS-Attacke online halten will, sind statische Dateien ohne Datenbank viel besser geeignet, denn sogar mein uralter 486er würde die Anzahl der Zugriffe vermutlich noch verkraften ;)
 
Back
Top