PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FTP-Server inkrementell spiegeln



mox
28.06.06, 19:40
Hallo,

mit

wget -mirror 'user:pass@ftpserver'
kann man einen FTP-Server inkrementell spiegeln.

Also fast, denn Daten, die vom FTP-Server wieder
verschwinden, existieren lokal immer noch.

Wie kann man das lösen, so daß man einen wirklichen
FTP-Server-Spiegel hat (ohne vorher alles lokal zu löschen) ?

Dank und Gruss

marce
28.06.06, 20:30
rsync mit Option delete

mox
28.06.06, 20:52
verstehe ich leider nicht ganz, wie kann man denn rsync per ftp-Protokoll nutzen ?
Auf dem Quell-Server läuft nur ein FTP-Dienst.

MiGo
29.06.06, 09:55
verstehe ich leider nicht ganz, wie kann man denn rsync per ftp-Protokoll nutzen ?
Gar nicht, afaik.
ftp ist halt einfach das falsche Werkzeug für deine Anforderungen. Daher: Entweder rsync installieren oder aber versuchen, nach dem wget die Dateilisten zu vergleichen.
Das ginge (teilweise, erforgert jede Menge Anpassung deinerseits) mit folgenden Scripten:


#!/bin/sh
ftp ftp.deinserver.de << ENDE
ls -lR
ENDE
Das gibt dir ein rekursives Listing deines ftp-servers, dass du in eine Datei speichern und mit den gängigen gnu-Tools filtern kannst.
Dazu müssen die Zugangsdaten zum ftp-Server in der Datei ~/.netrc hinterlegt werden und zwar in der Form:

machine ftp.deinserver.de
login ftpusername
password GOD

Wenn du mit dem Filtern fertig bist, kannst du die Liste mit deinem Verzeichnis vergleichen und alles löschen, was nicht auf der Liste steht.

Wie du siehst, ist nur ftp in der Tat nicht so ganz das richtige Werkzeug. Aber man kann halt auch mit einem Spannungsprüfer einen Nagel in die Wand hauen, wenn man genügen Kraft und Hartnäckigkeit aufbringt.

mox
29.06.06, 20:32
danke erstmal.

Warum kann man eigentlich das FTP-Passwort
nicht auch per << im Script übergeben ?

So z.B.;
#!/bin/sh
ftp ftp.deinserver.de << ENDE
meinuser
meinpasswort
ls -lR
ENDE

Den User akzeptiert er noch als Eingabe.

MiGo
30.06.06, 15:39
Keine Ahung, ob das geht, ich hab' meine Zugangsdaten in der .netrc ausgelagert.

se7en
09.07.06, 17:22
Hallo.

Ich versuche mich gerade an einem Skript das automatisch eine Website via cronjob aus einem lokalen Verzeichnis aktualisiert...
Schau dir doch einfach mal das Tool lftp und die funktion mirror bzw. mirror -R für reverse mirror (put) an... vll hilft dir das weiter. :-)
Damit kannst du auch inkrementell spiegeln.

Grüße