Wer seinen Webauftritt laufend aktualisieren möchte, kämpft häufig gegen die Tücken seines FTP-Clients. Einfacher funktioniert es mit dem kleinen Programm Sitecopy.
Alice ist frustriert. Ihr privater Internetauftritt soll einen neuen Anstrich erhalten. Doch nun das. Um sich nicht mit dem mittlerweile recht buschigen Datenwildwuchs herumzuschlagen, hat sie mit ihrem Lieblings-FTP-Programm einfach die neue Fassung über die alte gestülpt. Das Ergebnis: Über das neue Foto ihrer geliebten Katze gelangen die Besucher nun direkt auf die alten Seiten einer Metzgerei.
Irgendwo anders in Deutschland parkt Bob derweilen einige wichtige Dateien auf seinem WebDAV-Server. Den hat er extra angemietet, um auch von unterwegs immer auf seine aktuellen Dokumente zuzugreifen. Gerade in diesem Moment kopiert er aus Versehen eine falsche Datei – bemerken wird er das jedoch erst zwei Tage später in einem Hotel in Rom.
Wenn Sie vermeiden wollen, dass Ihnen bei der Datensynchronisation mit Server im Internet ähnliche Missgeschicke passieren, dann greifen Sie am besten zu Sitecopy [1].
Multitalent Sitecopy
Das kleine Programm Sitecopy überwacht den Dateibestand auf einem entfernten Computer und führt nach entsprechender Aufforderung eine Aktualisierung durch. Haben Sie beispielsweise der lokalen Kopie Ihrer Webseite neue Dateien hinzugefügt, schiebt Sitecopy diese automatisch auf den entfernten Server. Es löscht dabei auch gleich nicht mehr benötigte Files und bringt geänderte Dateien auf den neuesten Stand. Das alles geschieht mit nur einem kurzen Befehl auf der Kommandozeile (Abbildung 1). Einzige Voraussetzung: Sie brauchen einen Server, der das FTP- oder WebDAV-Protokoll spricht (Kasten “Hochadel”).

Abbildung 1: Geänderte Dateien laden Sie mit Sitecopy und dem Update-Befehl auf einen entfernten Server. Mit dem Fetch-Kommando gleichen Sie vorher den Datenbestand zwischen dem lokalen und dem entfernten Rechner ab.
Hochadel
Computer in einem Netzwerk können nicht einfach gedankenlos Daten verschicken. Ähnlich wie auf einer gut besuchten Party würde dies in einem unverständlichen Geschnatter enden. Folglich muss die Kommunikation ein paar Regeln befolgen. Letztere legen für jeden Anlass genau fest, wer wann was zu wem sagen darf. Genau wie beim britischen Hochadel heißt ein solcher Satz an Verhaltensregeln “Protokoll”.
Während beim “Hyper Text Transfer Protocol” (HTTP) die bekannten Internetseiten durch das Netzwerk flitzen, dient das “File Transfer Protocol” (FTP) ausschließlich der Übertragung von Dateien. Da das unkomfortable FTP langsam an seine Grenzen stößt, entstand unter dem Namen WebDAV eine Alternative. Das Akronym steht für den Zungenbrecher “Web-based Distributed Authoring and Versioning”. Es basiert auf HTTP und erlaubt es, entfernten Speicherplatz wie eine lokale Festplatte zu nutzen.
Installation
Sitecopy schlummert recht unbeachtet von der breiten Öffentlichkeit in vielen Distributionen. Unter Ubuntu genügt es, den Paketmanager anzuwerfen, das Paket sitecopy zu suchen und einzuspielen. Nutzer von Mandriva 2007, Suse Linux 10.1 und OpenSuse 10.2 verwenden am besten die fertigen RPM-Pakete von der Heft-CD. Zur Installation geben Sie mit Root-Rechten rpm -Uhv Paket.rpm ein, wobei Sie Paket durch die Sitecopy-Version ersetzen. Alternativ finden Sie das Werkzeug auch im Internet [1] (Abbildung 2). Dort stehen für verschiedene Distributionen fertige Pakete bereit, die Sie auf dem eben erwähnten Weg einspielen.

Abbildung 2: Die eher schlichte Internetseite von Sitecopy: Hier finden Sie den Quellcode der Software, falls es kein Paket für Ihre Distribution gibt.
Werden Sie wider erwartend auch dort nicht fündig, bleibt nur der Griff zum Quellcode, den Sie ebenfalls auf der Heft-CD finden. Sie wandeln ihn mithilfe des C-Compilers GCC manuell in ein ausführbares Programm um. Entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl, öffnen Sie ein Terminalfenster, wechseln Sie in das neue Verzeichnis und rufen Sie dort ./configure && make und mit Root-Rechten make install auf.
Informationsbedarf
Damit Sitecopy weiß, welche Daten es auf welchem Server überwachen soll, braucht es anfangs ein paar grundlegende Informationen. Diese erwartet das Werkzeug in der versteckten Datei .sitecopyrc in Ihrem Heimatverzeichnis. Legen Sie also im ersten Schritt besagte Datei mit einem Texteditor Ihrer Wahl an. Dort hinein kommen jetzt alle Informationen über Ihren Server. Ein Beispiel zeigt Listing 1.
# ~/.sitecopyrc
# Beispielkonfiguration fuer FTP
site alicecat
server www.alice.de
protocol ftp
username alice
password sehrgeheim
local /home/alice/webseite/katzen
remote ~/katzen
Alle Zeilen mit einer Raute ignoriert Sitecopy später. Ansonsten enthält jede Zeile den Namen einer Einstellung, gefolgt von einem Leerzeichen und dem eigentlichen Wert. Das Ganze sieht etwas kryptisch aus, lässt sich aber recht schnell aufdröseln.
Beginnen Sie mit der ersten eingerückten Zeile, welche die Adresse des Servers enthält. Im Beispiel hat Alice ihre eigene Homepage vermerkt: server www.alice.de. Anstelle dieses DNS-Namens dürfen Sie hier auch direkt eine IP-Adresse eintragen.
In die nächste Zeile gehört hinter protocol das beim Datenaustausch eingesetzte Protokoll (mehr dazu im Kasten “Hochadel”). Wie vom Provider vorgeschrieben, verwendet Alice für ihre Internetseite einen FTP-Zugang.
Direkt im Anschluss folgen die passenden Zugangsdaten. Dazu gehören der Benutzername (username) und das Passwort (password). Beide erhalten Sie normalerweise von Ihrem Provider. Doch Vorsicht: Eigentlich sollten Sie Passwörter niemals im Klartext auf der Festplatte speichern. Leider bietet Sitecopy nicht die Möglichkeit, das Passwort und den Benutzernamen direkt beim Anmelden einzutippen. Wer hier Sicherheitsbedenken hat, sollte das Passwort immer nur bei Bedarf eintragen und nach dem Datenabgleich wieder löschen.
Hinter local folgt das Arbeitsverzeichnis, das die lokale Kopie der Dateien beherbergt. Alice möchte zunächst nur die Seiten über ihre Katzen von Sitecopy verwalten lassen. Die zugehörigen Dateien verwahrt sie im Unterverzeichnis webseite/katzen ihres Heimatverzeichnisses auf, folglich finden Sie diesen Pfad neben remote.
Abschließend fehlt noch das Gegenstück auf dem Webserver. In Alice’ Beispiel landen alle Dateien im Unterverzeichnis /katzen auf ihrem Webserver. Die vorangestellte Tilde steht für das Verzeichnis, in dem sich Alice nach dem Einloggen über ein FTP-Programm auf dem Server wiederfindet. Soll Sitecopy Ihren gesamten Internetauftritt verwalten und nicht nur wie bei Alice die Seiten mit den Katzen, verwenden Sie an dieser Stelle einen normalen Schrägstrich: remote / sorgt für den Abgleich vom Wurzelverzeichnis an aufwärts.
Zweitwohnsitz
Damit wären alle notwendigen Informationen beisammen. Doch was passiert, wenn Sitecopy mehrere Internetauftritte überwachen soll? Damit es später keine Verwirrung gibt, fassen Sie die gerade eingetragenen Einstellungen unter einem gemeinsamen Namen zusammen. Der steht hinter dem Schlüsselwort site, das wiederum direkt vor allen anderen Zeilen landet. Im Beispiel hat Alice ihre Einstellungen alicecat genannt. Die Vergabe eines Namens ist übrigens Pflicht, selbst wenn Sie nur einen Internetauftritt verwalten (Abbildung 3).

site in der Datei .sitecopyrc steht. So hält die Software auch verschiedene Webseiten auseinander, die auf derselben Domain liegen.” width=”300″ height=”201″ />
site in der Datei .sitecopyrc steht. So hält die Software auch verschiedene Webseiten auseinander, die auf derselben Domain liegen. Am Ende der Konfigurationsdatei hängen Sie einfach unter einem neuen Namen einen weiteren Server mit zugehörigen Einstellungen. Listing 2 zeigt die Daten für einen WebDAV-Server unter dem Namen bobwebdav. Seine Dateien warten im Verzeichnis /dokumente/bob/arbeit/berichte/ auf ihre Übertragung.
# ~/.sitecopyrc
# Beispielkonfiguration fuer FTP und WebDAV
site alicecat
server www.alice.de
protocol ftp
username alice
password sehrgeheim
local /home/alice/webseite/katzen
remote ~/katzen
site bobwebdav
server dav.bobshoster.de
protocol webdav
username bob
password strenggeheim
local /dokumente/bob/arbeit/berichte/
remote /bob/
Rechtliche Schritte
Neben der Konfigurationsdatei legen Sie mittels des Befehls mkdir .sitecopy noch das spezielle Verzeichnis .sitecopy im Heimatverzeichnis an. In diesem versteckten Ordner notiert sich das Tool den jeweils letzten Zustand der Dateien auf dem Server. Die Sitecopy-Dokumentation bezeichnet ihn deshalb auch als “Storage Directory”.
Sowohl die Konfigurationsdatei als auch das Storage Directory dürfen ausschließlich für Sie selbst zugänglich sein: Andernfalls verweigert Sitecopy den Dienst. Die entsprechenden Benutzerrechte setzen Sie über das Eigenschaftsfenster der Datei, beziehungsweise des Verzeichnisses (in der Regel erreichbar über die rechte Maustaste im Dateimanager Ihres Vertrauens). In einem Terminalfenster erledigt die Zeile
chmod 600 .sitecopyrc && chmod 700 .sitecopy
den Job. Die Datenübertragung via FTP erfolgt unverschlüsselt. Übertragen Sie sensible Daten, greifen Sie lieber auf einen externen WebDAV-Server zu, der SSL beherrscht. Die Datei .sitecopyrc ergänzen Sie dazu um die Zeile http secure.
Schon alle da?
Sofern auf Ihrem Server bereits Dateien liegen, müssen Sie vor dem ersten Aufruf von Sitecopy sicherstellen, dass die lokale Kopie mit den entfernt gelagerten Dateien übereinstimmt. Mit einem
sitecopy --catchup alicecat
durchsucht das kleine Werkzeug den in der Konfigurationsdatei unter dem Namen alicecat eingetragenen Server und notiert sich alle dort gefundenen Dateien.
Besitzen Sie noch keine lokale Kopie der dort gelagerten Dokumente, werfen Sie einfach den so genannten Fetch-Mode an. Per
sitecopy --fetch alicecat
untersucht das Werkzeug zunächst den Server und lädt anschließend mittels des Kommandos
sitecopy --synchronize alicecat
die dabei entdeckten Dateien herunter (Abbildung 4). Diese landen im angegebenen Arbeitsverzeichnis – bei Alice wäre das /home/alice/webseite/katzen. Der Autor von Sitecopy garantiert eine korrekte Funktionsweise des Fetch-Mode allerdings nur mit WebDAV-Servern. Alice – die ja einen FTP-Server nutzt – sollte also besser die Finger von dieser Methode lassen, falls sie Datenverlust befürchtet. Im Test traten allerdings keine Probleme auf, bis auf die im Kasten “Probleme” erwähnten.

fetch und synchronize bringen Sie die lokalen Dateien auf den neuesten Stand, bevor Sie Veränderungen an einer Webseite vornehmen.” width=”300″ height=”201″ />
fetch und synchronize bringen Sie die lokalen Dateien auf den neuesten Stand, bevor Sie Veränderungen an einer Webseite vornehmen.Probleme
Aufgrund eines Bugs bricht das Synchronisieren mit einer Fehlermeldung ab, wenn die entfernte Seite mehrere Ebenen tief ist. Rufen Sie den Befehl einfach mehrmals nacheinander auf, bis Sitecopy sämtliche Verzeichnisebenen korrekt anlegt und beginnt, die einzelnen Dateien zu kopieren.
Bleibt noch der dritte Fall, bei dem die Daten zwar schon lokal existieren, aber der Server noch gähnende Leere aufweist. Hier genügt der Befehl:
sitecopy --init Seitenname
Auf diesem Weg lernt Sitecopy zwar die Dateien und die entfernte Umgebung kennen, es fließen aber noch keine Daten zum Server.
Abgleich
Damit sind alle Vorbereitungen abgeschlossen. Sie dürften die Dateien im lokalen Arbeitsverzeichnis nun nach Belieben bearbeiten, löschen oder innerhalb seiner Grenzen verschieben. Die Unterschiede zu den Dokumenten auf dem Server überprüfen Sie jederzeit via sitecopy Seitenname. Möchten Sie Ihre Änderungen auf den Server hieven, genügt ein Aufruf von
sitecopy --update Seitenname
Sitecopy lädt nun ausschließlich alle geänderten Dateien auf den Server und entfernt dort Dateien, die es auch lokal nicht mehr gibt. Letzteres passiert allerdings nur dann, wenn in der Konfigurationsdatei unterhalb von site Seitenname keine Zeile auftaucht, die das Schlüsselwort nodelete enthält.
Kurze Unterbrechung
Kommt es während der Datenübertragung zu einer Störung oder gar zu einem kompletten Verbindungsabbruch, hilft der bereits angesprochene Fetch-Mode aus der Klemme. Der Befehl
sitecopy --fetch Seitenname
untersucht zunächst die Situation auf dem Server, ein anschließendes
sitecopy --update Seitenname
beseitigt sämtliche Inkonsistenzen. Einen Überblick über alle wichtigen Befehle gibt noch die Tabelle “Sitecopy: Wichtige Befehle”.
Alle auf einen Streich
Um mehrere Internetseiten auf einen Schlag zu aktualisieren, hängen Sie an den entsprechenden Sitecopy-Befehl einfach die jeweiligen Seitennamen. Mit dem Kommando
sitecopy --update --quiet alicecat bobwebdav
bringen Sie also die beiden Server alicecat und bobwebdav auf den neuesten Stand. Noch schneller funktioniert das mit
sitecopy --allsites
das gleich alle in der Konfigurationsdatei angegebenen Server aktualisiert.
Sitecopy: Wichtige Befehle
| Befehl | Funktion |
|---|---|
sitecopy --list Seitenname |
erstellt eine Liste mit allen Unterschieden zwischen den lokalen Dateien und denen auf dem Server |
sitecopy --fetch Seitenname |
holt eine Liste der aktuell auf dem Server abgelegten Dateien |
sitecopy --update Seitenname |
aktualisiert die Dateien auf dem Server mit denen aus dem lokalen Arbeitsverzeichnis |
sitecopy --synchronize Seitenname |
lädt die Dateien vom Server in das lokale Arbeitsverzeichnis (also ein --update in die andere Richtung). |
sitecopy --initialize Seitenname |
Sitecopy geht von einem bislang unbenutzten Server aus |
sitecopy --catchup Seitenname |
Sitecopy geht davon aus, dass die lokale Kopie mit der auf dem Server übereinstimmt |
TIPP
Bei Angabe des zusätzlichen Parameters -o offenbart Sitecopy auch den Fortschritt während der Datenübertragung.
Fazit
Die Konfigurationsdatei erlaubt noch viele weitere Einstellungen, über die Sie den Abgleich gezielt steuern. Einen Überblick verschafft die zugehörige Manpage, die Sie via man sitecopy aufrufen. Sie ersetzt auch gleichzeitig die Dokumentation.
Haben Sie Sitecopy erst einmal ausprobiert, möchten Sie das kleine Hilfswerkzeug so schnell nicht mehr missen: Schneller und komfortabler halten auch Alice und Bob ihre Seiten nicht auf dem neuesten Stand.
[1] Sitecopy: http://www.lyra.org/sitecopy/





