{{tag>backup rsync ftp curlftpfs fuse}} ====== Dateien vom Server auf einen entfernten Linux-Rechner oder externen ftp-Space synchronisieren/kopieren ====== [**Tipp:** **rsync** kann auch unter **Windows** genutzt werden: http://it-em.net/cms/front_content.php?idart=43 ] ===== Austausch-Verzeichnisse auf Servern im gleichen Netz ===== Mit folgendem Befehl kann man z.B. die auf dem Server (= Quellrechner mit z.B der IP 192.168.10.1/255.255.255.0) im Ordner /backup/server vorhandenen Backupdateien auf einen im gleichen Netzwerk entfernt stehenden Rechner(=Zielrechner mit z.B. der IP 192.168.10.1/255.255.255.0)kopieren bzw. die entsprechenden Verzeichnisse synchronisieren: rsync -au /backup/server/ root@192.168.10.2:/backup/server/ Mit dem zusätzlichen Schalter --delete können gleichzeitig auf dem entfernten Rechner Kopien von jenen Backupdateien gelöscht werden, die inzwischen auf dem Quellrechner nicht mehr vorhanden sind: rsync -au ––delete /backup/server/ root@192.168.10.2:/backup/server/ Voraussetzung für die Funktion ist, dass... * beide Linux-Rechner über ein Netzwerk miteinander verbunden sind * beide Rechner eine IP-Adresse im gleichen Adressbereich bei gleicher Netzwerkmaske haben * man sich vom Quellrechner ohne Passworteingabe als root auf dem Zielrechner einloggen kann, wie hier http://www.linuxmuster.net/version3:ssh-keys beschrieben steht. ===== Austausch-Verzeichnisse auf dem Server und einem externen ftp-Server ===== Lösungsbeispiel nach http://yeebase.com/rsync-ftp-webanwendungen-webspace-ausrollen-235482/ und http://blog.robwei.de/2008/07/27/ein-ftp-verzeichnis-mit-rsync-spiegeln/ Es ist möglich mittels des Filesystem-Treiber //"curlftpfs"// einen //externen FTP-Space// (z.B. die an der häuslichen AVM-Fritzbox angeschlossene USB-HD) am Server //als lokales Verzeichnis// zu mounten, um so z.B. mit //rsync// einen Datenausgleich machen zu können. Dazu muss //curlftpfs// unter Debian / Ubuntu mit apt-get install curlftpfs installiert, dann an der Konsole mit curlftpfs -s ftp://user:pass@testdomainbla.de /mnt/ftpverz das Mounten getestet werden. Wenn zunächst die Meldung fusermount: failed to open /dev/fuse: No such file erscheint, mit modprobe fuse an der Konsole auf das Modul fuse testen. Erhält man dann keinerlei Meldung, ist das ok. Dauerhaft bei jedem Systemstart geladen werden Module, indem man sie als neue Zeile in der Datei ///etc/modules// einträgt. Mit lsmod kann man sich dann noch mal alle geladenen Module anzeigen lassen und fuse sollte dabei sein. - Jetzt erneut curlftpfs -s ftp://user:pass@testdomainbla.de /mnt/ftpverz starten. Wenn man jetzt keine Meldung erhält, wurde der externe ftp-Server-Verzeichnisbaum lokal am Server gemountet und ist in /mnt/ftpverz zu sehen. Ein kleines Script zum Mounten, Synchronisieren und Unmounten eines FTP-Verzeichnisses könnte dann z.B. so aussehen: #!/bin/sh curlftpfs -s ftp://user:pass@testdomainbla.de /mnt/ftpverz rsync -rltDvz --force --exclude-from=rsync_exclude.txt /var/www/webprojekt/ /mnt/ftpverz/ umount /mnt/ftpverz