Optimiert: Webserver-Backup mit ftpsync
Ich hatte ja hier schonmal beschrieben, wie ich unter Windows mit ncpget und 7zip meinen Webspace abziehe. Caschy hat sich des Themas dankenswerterweise angenommen und den Post aufgegriffen.
Das Problem an dieser Lösung war immer, dass der ganze Webspace heruntergeladen wird, was natürlich dauert und für einen gewissen Zeitraum den Webspace auch etwas verlangsamt. Mir schwebte immer eine Lösung vor, die nur die Änderungen synchronisiert – quasi rsync via ftp.
Da rsync über ftp aber nicht tut (zumindest habe ich mir einen Wolf gesucht), ist mir eine andere Lösung aufgefallen: ftpsync. Dabei handelt es sich um ein Perl-Script, was somit die ganze Sache plattformunabhängig macht, denn Perl gibts für jedes Betriebssystem. Linuxer und Mac-User haben es an Bord, Windowsuser bekommen Perl hier.
Grundsätzlich funktioniert ftpsync sehr simpel, man muss nur “perl ftpsync.pl [Optionen]” auf der Kommandozeile des jeweiligen Betriebssystems aufrufen. Natürlich sollten die Pfade passen, aber wem sag ich das ![]()
Für einen Webserverbackup reicht als Option ein “-g Ziel Quelle”, was ftpsync auf das “get”, also den Download von Dateien, beschränkt. Beispiel:
perl ftpsync.pl -gv .\Sicherung ftp://Username:Passwort@Servername/Verzeichnis
Die komplette Syntax sieht so aus:
FTPSync.pl 1.3.03 (2009-07-03)
ftpsync [ options ] [ localdir remoteURL ]
ftpsync [ options ] [ remoteURL localdir ]
options = [-dfgpqv] [ cfg|ftpuser|ftppasswd|ftpserver|ftpdir=value ... ]
localdir local directory, defaults to “.”.
ftpURL full FTP URL, scheme
ftp://[ftpuser[:ftppasswd]@]ftpserver/ftpdir
ftpdir is relative, so double / for absolute paths as well as /
-c | -C like -i, but then prompts whether to actually do work
-d | -D turns debug output (including verbose output) on
-f | -F flat operation, no subdir recursion
-g | -G forces sync direction to GET (remote to local)
-h | -H prints out this help text
-i | -I forces info mode, only telling what would be done
-n | -N no deletion of obsolete files or directories
-l | -L follow local symbolic links as if they were directories
-p | -P forces sync direction to PUT (local to remote)
-q | -Q turns quiet operation on
-s | -S turns usage timestamps comparison (only checks for changes in size)
-t | -T turns timestamp setting for local files off
-v | -V turnes verbose output on
Die Optionen zeigen, dass ftpsync auch auf den Webserver schreibend zugreifen kann – vielleicht interessant, wenn man Webdevelopment betreibt und lokal die neueren Daten hat.
Im Gegensatz zu meiner alten Lösung, bei der ich den ganzen Download anschliessend in eine Zip-Datei geschoben habe, muss hier der Download stehenbleiben, damit beim nächsten Lauf ftpsync auch brav vergleichen kann. Da ftpsync auf dem Quellsystem gelöschte Dateien auch tapfer auf dem Zielmedium löscht (ein echter Sync eben), sollte man sich zu Archivierungszwecken vor (!) dem Sync eine Zipdatei in einem Archivverzeichnis erstellen, die dann im Fall der Fälle als Sicherung von der Sicherung dienen kann. Beispiel für Windows:
@echo off & setlocal
for /f “delims=. tokens=1,2,3″ %%a in (‘echo %date%’) do set datum=%%c.%%b.%%a
c:\Programme\7-Zip\7z a -tzip archiv\%datum%.zip Sicherung\*
Damit wird das Verzeichnis “Sicherung” in eine Zipdatei im Verzeichnis “Archiv” gepackt. Die Zipdatei heisst dann “Jahr.Monat.Tag.zip”.
Packt man das in eine Batchdatei oder ein Script, dann hat man eine recht saubere und schnelle Backuplösung mit Archivierungsfunktion.
Auch interessant:
- Mac: FileSync
Mein iBook dient neben dem Wohnzimmersurfen auch der mobilen Präsentation von Fotos etc. Die Origin - Windows: Allway Sync als universelles Backup- und Syncprogramm
FTP-Sync ist ja eigentlich das Tool meiner Wahl, um FTP-Server abzuziehen. Das Dumme an FTP-Sync is - gegen Rechts: kostenloses Doppelalbum britischer Bands
Mal wieder ein Musikhinweis vom Alternative Music Blog: Als Reaktion auf Aktionen der rechten britis - Windows: Webserver-Backup per FTP
Sollte man ja eigentlich wissen: ein Backup in Ehren kann keiner verwehren. Bisher habe ich brav j - Webspace sichern, heute: Datenbanken
Ein recht häufig gelesener Artikel hier (nicht zuletzt dank Caschy) ist eine Anleitung, wie man sei












Bei mir ist ftpsync nach der Zeitumstellung plötzlich der Meinung, dass viele, nicht alle, Backups genau 1 Stunde zu alt sind. Wenn ich die “Automatische Zeitumstellung” bei der Uhr deaktiviere sind es weniger “falsch” erkannte Dateien aber immer noch mehr als eigentlich geändert. Mit anderen Worten nach der Umstellung auf Winterzeit, will das Teil ein Komplett-Backup machen. Man muss doch diese dubiosen Timestamps bereinigen können.
Hast du mehr Ahnung von Perl als ich?
Ach, deswegen hat das Ding am Freitag so lange gebraucht *anshirnschlag*
Ne, Perl-Ahnung habe ich keine, leider
Der Autor nutzt leider das “antike” Tool nach eigener Aussage seit Jahren nicht mehr. Diverse Patches sind auch von anderen eingeflossen. Naja, mal ein wenig testen, wie man diese Zeitzonen auswerten kann. Wäre ja das einfachste, die Sommerzeit abzuschaffen.
Danke für die Anleitungen!!
Habe mir daraus jetzt auch eine Backup Batch für meinen Webspace gebaut.
Einen Haken hat das ganze allerdings.
ftpsync löscht lokal zwar brav Dateien, die auf dem Server nicht mehr vorhanden sind, aber Verzeichnisse bleiben lokal erhalten, obwohl sie auf dem Server nicht mehr vorhanden sind.
Hi Lars,
das ist mir auch aufgefallen und ich hab letztens mit Berechtigungen, Pfaden und verschiedenen Plattformen experimentiert, aber (noch) keine Lösung gefunden.
Stay tuned…