[[Vorlage(Getestet, natty, lucid)]] {{{#!vorlage Wissen [:Anwendungen_hinzufügen:Anwendungen hinzufügen] [:Rechte: Rechte für Dateien und Ordner ändern] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/service.png, 48, align=left)]] [http://www.manyfish.co.uk/sitecopy/ sitecopy] {en} ist eine Anwendung für die Kommandozeile, mit der sich leicht und einfach zwei Verzeichnisse per [wikipedia:File_Transfer_Protocol:FTP] oder [wikipedia:Webdav:WebDAV] synchronisieren lassen. Es zielt auf Anwender ab, die eine Website aktuell halten möchten und nur über einen FTP-Zugang verfügen. Anders als zum Beispiel [:rsync:] überträgt es veränderte Dateien immer komplett. Dafür versucht es, Dateien, die nur verschoben wurden, automatisch zu erkennen und auch im Zielverzeichnis entsprechend zu verschieben (anstatt sie neu hoch zu laden) und somit Traffic zu sparen. = Installation = sitecopy befindet sich in den offiziellen Paketquellen und kann einfach über folgendes Paket installiert werden [1]: {{{#!vorlage Paketinstallation sitecopy, universe }}} = Konfiguration = Zur korrekten Verwendung müssen im Heimverzeichnis zunächst ein Anwendungsverzeichnis und eine Konfigurationsdatei erstellt werden. Es ist wichtig, dass diese nur für den Benutzer lesbar [2] sind. Das Programm verweigert andernfalls die Funktion. Dazu werden folgende Befehle in einem Terminalfenster ausgeführt [3]: {{{#!vorlage Befehl mkdir -m 700 ~/.sitecopy touch ~/.sitecopyrc chmod 600 ~/.sitecopyrc }}} In der Datei '''~/.sitecopyrc''' werden die Einstellungen für jede Seite, die synchronisiert werden soll, gespeichert. Eine Beispielkonfiguration könnte so aussehen [4]: {{{ site Seite #Profilname server ftp.Seite.de #Servername username Benutzername #Anmeldename password Passwort #Passwort local /Pfad/zum/lokalen/Verzeichnis #lokaler Verzeichnispfad remote Pfad/zum/entfernten/Verzeichnis #entfernter Verzeichnispfad port XY #Portnummer (optional) proxy-server Proxy-Name #Proxyserver (optional) proxy-port YX #Proxyport (optional) url Seitenadresse # (optional) protocol Protokoll #ftp oder webdav (optional) ftp Option #FTP-Optionen: nopasv, showquit, usecwd|nousecwd (optional), können kombiniert werden (eins pro Zeile) http Option #HTTP-Optionen: expect, secure (optional), können kombiniert werden (eins pro Zeile) safe #Im Zielverzeichnis geänderte Dateien werden erhalten (optional) state Option #checksum|timesize (optional) permissions Option #ignore|exec|all|dir (optional) symlinks Option #ignore|follow|maintain (optional) nodelete #Im Zielverzeichnis wird nicht gelöscht nooverwrite #Es wird nichts überschrieben, nur neue Dateien hochgeladen checkmoved #Ob auf verschobene Dateien überprüft werden soll. Angehängtes renames benennt um tempupload # (optional) exclude Muster #Muster, welches nicht hochgeladen werden soll (z.B. ".ignorieren") (optional) ignore Muster ascii Muster site Seite2 server server2.domain.com remote anderer/Pfad local /wieder/anderer/Pfad username Benutzername2 password Passwort2 }}} In den [:Shell/man:man]-Seiten von sitecopy werden die einzelnen Schalter nochmals ausführlich beschrieben. = Verwendung = Bevor sitecopy verwendet werden kann, muss beim ersten Programmstart immer eine initialisierende Synchronisierung durchgeführt werden. Dabei werden drei Fälle unterschieden: 1. Für den Fall, dass die lokalen Daten bereits mit den entfernten Daten synchron (= identisch) sind, wird sitecopy mit {{{#!vorlage Befehl sitecopy --catchup Seite }}} initialisiert. 1. Liegt die Seite nur auf dem entfernten Server __und__ nicht lokal vor, initialisiert man sitecopy mit {{{#!vorlage Befehl sitecopy --fetch Seite sitecopy --synchronize Seite }}} Aber Vorsicht, dieser Befehl erstellt eine lokale Kopie der entfernten Daten und überschreibt somit bereits vorhandene. 1. Liegen die Daten nur lokal vor, initialisiert man sitecopy mit {{{#!vorlage Befehl sitecopy --init Seite }}} == Änderungen übertragen == Hat man sitecopy initialisiert oder die lokalen Daten bearbeitet und möchte man nun Änderungen auf den entfernten Server übertragen, kann man sich zunächst mit {{{#!vorlage Befehl sitecopy Seite }}} die zu übertragenden Änderungen anzeigen lassen und sie anschließend mit {{{#!vorlage Befehl sitecopy --update Seite }}} anwenden lassen. = Links = * [http://www.manyfish.co.uk/sitecopy/ Homepage] {en} * [:FTP:] {Übersicht} Übersichtsartikel * [http://www.pro-linux.de/artikel/2/445/website-synchronisation-mit-sitecopy.html Website-Synchronisation mit sitecopy] {de} - Artikel Pro-Linux.de, 08/2003 #tag: Netzwerk, Internet