Liebe Forengemeinde,
da das jahr sich dem Ende neigt und ich Zeit hatte ein paar Projekte zu testen möchte ich den Pinguinen unter uns und solchen die es werden wollen einen Ansatz vorstellen mit dem sich der Webspace mit dem lokalen Inhalt der Festplatte syncronisieren lässt.
Dieses Thema mag wohl schon in anderer Form behandelt worden sein, möglicherweise auch hier (ich habe allerdings nicht wirklich danach gesucht).
Bei der Vielfalt an Linuxdistributionen sieht man inzwischen deutlich den Trend, dass sich die Installation zunehmend vereinfacht. Sicher um ein Betriebssystem kennenzulernen muss man damit arbeiten. Wer von der Windows-Welt zu Linux wechselt wird mit Sicherheit auch etwas Einarbeitungszeit benötigen. Doch für bestimmte Aufgaben lohnt es sich sich näher damit zu beschäftigen (auch wenn man hin und wieder ein paar kryptische Befehle über die Kommandozeile eintippen muss
).
Der Plan: Ich hab da meinen Webspace und komme nur per FTP drauf.
Nun üblicherweise nimmt man dann einen FTP-Client und schaufelt die Daten von einem System aufs andere. Toll wäre es allerdings wenn man den FTP-Space direkt ins Dateisystem einhängen könnte.
Geht das überhaupt? Definitiv ja.
http://kefk.org/safety/mounten.eines...bian.gnu.linux
http://www.exanto.de/sftp-und-ftp-un...x-mounten.html
http://wiki.ubuntuusers.de/curlftpfs
http://wiki.ubuntuusers.de/FUSE
http://blog.simlau.net/rsync-auf-einen-ftp-server.html
http://www.jodler.ch/bstocker/?p=1521
Voraussetzung dafür ist dass fuse (filesystem in Userspace) sowie curlftpfs installiert ist, besser wäre selbstverständlich eine Verschlüsselte Übertragung via FTPs oder SFTP. Doch wenden wir uns zunächst dem Grundprinzip zu.
Der Server lässt sich nach dem Erstellen geeigneter Verzeichnisse als Mountpoints (das sind die Orte im Verzeichnisbaum wo dann die Dateien zu finden sind), z. B. /mnt/FTP-Space mit folgendem Befehl in das Dateisystem einhängen
Code:
curlftpfs Benutzername:Passwort@ftp-server.de/Pfad/zum/Webspace/ /mnt/FTP-Space
wechseln wir anschliessend in das Verzeichnis /mnt/FTP-Space mit
und lassen uns den Inhalt mittels
oder
anzeigen, so sollten wir nun unseren Webspace vorfinden.
Na toll wird der eine oder andere nun sagen. Was bringt mir das nun?
Nun unter Linux gibt es den schönen Befehl rsync den man auch hier wunderbar einsetzen kann.
http://wiki.ubuntuusers.de/rsync
Die syntax lautet
Code:
rsync [OPTIONEN] <Quelle> <Ziel>
verwenden wir nun den Befehl
Code:
rsync -avz /mnt/FTP-Space /Pfad/zum/Backupdir
so erhalten wir ein Backup unter
/Pfad/zum/Backupdir/FTP-Space
erweitert man den Befehl um die Option --delete so werden nicht mehr vorhandene Dateien im Backup gelöscht
Code:
rsync --delete -avz /mnt/FTP-Space /Pfad/zum/Backupdir
interessanter ist die Option der Angabe eines Archivverzeichnisses in das die gelöschten Dateien verschoben werden. Auf diese Weise lassen sich Veränderungen im Dateisystem verfolgen was für die Intrusion-Detection nicht ganz uninteressant ist 
Code:
rsync --delete -avbz /mnt/FTP-Space /Pfad/zum/Backupdir --backup-dir=/Pfad/zum/Archivdir
Hat man einen SFTP-Zugang so kann man sich curlftpfs schenken und verwendet gleich rsync mit den entsprechenden Optionen
z.B. für den user root:
cd /root/.ssh
ssh-keygen -t rsa -f rsync.id
ssh -i ./.ssh/rsync.id login.to.serverxyz.de
(den Key müsst Ihr natürlich auf den Server nach .ssh in das Keyfile übertragen )
Ein Paar Worte zum Befehl:
--delete sorgt dafür, dass Dateien , die am Quellort gelöscht wurden, auch am Zielort gelöscht werden
-a ist der Archiv-Modus, d.h. er behält alle Permissions, Symlinks, Zeiten, Besitzer und Gruppen bei
-v zeigt alle Dateien an, die übertragen werden.
-z überträgt die Dateien komprimiert
-e nutzen wir in diesem Fall, um die Übertragung über SSH laufen zu lassen.
-b sorgt dafür, dass durch die Option --delete gelöschte sowie alle veränderten Objekte gesichert
werden mit --backup-dir=Verzeichnis kann man ein Verzeichnis dafür angeben
Und als shellscript
Code:
#!/bin/sh
rsync --delete -avzbe 'ssh -i /root/.ssh/rsync.id' root@mein.server.de:/srv/www /Pfad/zum/Backupdir --backup-dir=/Pfad/zum/Archivdir
das man modifizieren kann für bestimmte Verzeichnisse
Code:
#!/bin/sh
rsync --delete -avzbe 'ssh -i /root/.ssh/rsync.id' root@mein.server.de:/srv/www /Pfad/zum/Backupdir/dir1 --backup-dir=/Pfad/zum/Archivdir
rsync --delete -avzbe 'ssh -i /root/.ssh/rsync.id' root@mein.server.de:/srv/www /Pfad/zum/Backupdir/dir2 --backup-dir=/Pfad/zum/Archivdir
rsync --delete -avzbe 'ssh -i /root/.ssh/rsync.id' root@mein.server.de:/srv/www /Pfad/zum/Backupdir/dir3 --backup-dir=/Pfad/zum/Archivdir
Und dann kam die Frage: Geht das auch bei VPN Verbindungen?
Hrmpf. Ja es geht, allerdings habe ich recht viele Distributionen in der letzten Zeit zum Testen auf der Platte gehabt und bin daher etwas nörgelig.
Also die klassische Variante eine Netzwerkkarte im System einzuhängen läuft über ifup. Inzwischen wird jedoch auch die Variante über den Networkmanager bereitgestellt.
http://de.wikipedia.org/wiki/NetworkManager
http://wiki.ubuntuusers.de/NetworkManager?redirect=no
Ansich eine komfortable Sache wenn mir nicht regelmassig der KDE-Networkmanager abgeschmiert wäre.
Ich konnte jedoch feststellen, dass der Networkmanager aus dem Gnome-Paket zuverlässiger zu laufen scheint.
hier mal noch ein weiterführender Link dazu
http://mschlander.wordpress.com/2011...opensuse-11-4/
Und noch ein paar abschliessende Worte:
Der Datenabgleich kann natürlich in beide Richtungen vorgenommen werden.
Und die Verbindung zum FTP-Server beendet man mit
Code:
umount /mnt/FTP-Space
Man kann sich das jetzt auch noch als cron-job einbinden der automatisiert läuft
l_santa.gif
Lesezeichen