| schlittermann |
Es wird kurz erklärt, wie mit Sitecopy zu arbeiten ist. Als Beispiel nehmen wir eine bereits vorhandene Webpräsenz, die in Zukunft mit Sitecopy verwaltet werden soll.
Zuerst wird das Einrichten erläutert, dann das tägliche Leben mit Sitecopy und am Ende ist noch mal eine kurze Zusammenfassung der wichtigsten Optionen.
Sie haben schon eine Site auf dem Webserver und wollen in Zukunft diese mit Sitecopy bearbeiten. Was ist zu tun?
Sitecopy sucht seine Konfiguration in der Datei
~/.sitecopyrc. Diese Datei editieren wir (bzw.
beim ersten Mal wird sie neu angelegt). Je Site muss dort etwa folgender
Eintrag rein:
# ~/.sitecopyrc
site <site> # ein netter und kurzer Name der Site
server <Hostname> # Name des Servers
username <Nutzer> # Name des FTP-Nutzers
local <Verzeichnis> # Lokales Arbeitsverzeichnis (z.B. ".")
remote <Verzeichnis> # korrespondierendes Verzeichnis auf dem fremden Server
exclude <Muster> # Dateien und Verzeichnisse, die nicht synchronisiert
# werden sollen (z.B. ".svn")
checkmoved # wenn lokal Dateien nur zwischen Verzeichnissen
# verschoben werden, dann auch auf der FTP-Server Seite
safe # es werden keine zwischenzeitlich auf der
# anderen Seite geänderten Files überschrieben
Damit wir dann nicht immer nach dem Passwort gefragt werden, legen
wir eine weitere Datei an (oder ergänzen sie), das File heißt
~/.netrc und wird auch von anderen FTP-Clients
genutzt, um Nutzernamen und Passworte zu erfahren.
# ~/.netrc
machine <FTP-Host> login <FTP-Nutzer> password <FTP-Passwort>
Damit kein anderer diese ~/.netrc lesen kann,
machen wir beim ersten Mal noch sicherheitshalber ein
chmod go= ~/.netrc.
Ein eventueller Default-Eintrag muß am Ende der Datei stehen.
Natürlich hätte man das Passwort auch in die
.sitecopyrc schreiben können, aber das gefällt mir
nicht, falls wir die .sitecopyrc zusammen mit den
einzelnen Sites irgendwo zentral lagern.
Es wird lokal ein leeres Verzeichnis angelegt, nennen wir es
workdir/. Dieses Verzeichnis kann auch schon Teile
der Präsenz auf dem Web-Server enthalten. Zu beachten ist lediglich, daß
dann beim Download eventuell Files gelöscht werden, die auf dem Server
nicht vorhanden sind!
Jetzt müssen wir uns vom fremden Server eine Liste mit den dort
aktuellen Files abholen, dazu gehen wir erstmal in das
Arbeitsverzeichnis (cd workdir) und
verwenden nun:
sitecopy -f <Site>
Wenn wir neugierig sind, können wir mit einer Debug-Option auch noch
dem FTP-Transfer zusehen: sitecopy -d ftp -f ....
Nun können wir uns ansehen, was Sitecopy zu dieser Veranstaltung sagt, dabei wird nichts gelöscht oder übertragen, es vergleicht einfach nur die Fileliste des Servers mit den lokal vorhandenen Dateien:
sitecopy <Site>
Eine Aussage wie
* These items have been deleted since... heißt nur, daß auf
unserer Seite diese Files verschwunden sind, seitdem wir die
Site das letzte mal aktualisiert hatten. (Aber das haben wir ja noch
nie! Sitecopy weiß das natürlich nicht.)
Nun können wir synchronisieren, also die Files vom Server runterladen:
sitecopy -s <Site>
Vorsicht: Dabei werden lokal vorhandene Files
gelöscht, falls sie im Wege liegen. Es ist also wichtig, im
richtigen Arbeitsverzeichnis zu sein. Dieser Fehler
(menschliches Versagen) läßt sich vermeiden, wenn wir in der
~/.sitecopyrc nur absolute Pfadnamen für das
lokale Verzeichnis eintragen.
Anmerkung: Leider ist Sitecopy im Augenblick nicht in der
Lage, tiefe Verzeichnis-Hierarchien anzulegen, als Workaround hilft
hier, sitecopy -s ... so oft aufzurufen, bis alle
Verzeichnisse vorhanden sind. Das Problem tritt nur auf, wenn das
Elternverzeichnis eines anzulegenden Verzeichnisses noch nicht vorhanden
ist.
Nun können wir nach Belieben lokal ändern und anpassen. Wenn wir dann glauben, daß wir fertig sind, kann wieder hochgeladen werden:
sitecopy -u <Site>
Es werden dabei die Files aktualisiert, von denen Sitecopy
glaubt, daß sie auf dem Server in einer alten Version
vorliegen. (Über die Versionen auf dem Server hat Sitecopy sich ja am
Anfang mit sitecopy -f ... informiert bzw. tut es bei jedem
Upload automatisch.)
Solange die Option safe in der Konfigurations-Datei
steht, wird Sitecopy auch keine Files auf dem Server überschreiben, die
dort zwischenzeitlich verändert wurden.
Halten wir noch mal fest: Sitecopy hat eine lokale Liste der Files auf dem Server. Normalerweise stimmt diese Liste — wenn außer uns selbst keiner den Server aktualisiert.
Nach lokalen Änderungen möchten wir gerne sehen, was Sitecopy nun eigentlich hoch- oder runterladen würde. Dafür genügt ein:
sitecopy <Site>
Wenn wir also lokal etwas an den Webseiten geändert haben und nun sollen diese Änderungen wieder zum Server, dann geht das mit:
sitecopy -u <Site>
ganz einfach. Sitecopy vergleicht unsere lokalen Files mit der lokalen Liste der Serverdateien und lädt alle veränderten Files wieder hoch.
Wenn sich inzwischen auf dem Server die Files auch geändert haben
sollten (weil vielleicht auch noch jemand anders aktualisiert hat), dann
wird Sitecopy diese Files überschreiben, außer die Option
safe ist in der Konfigurationsdatei.
Wenn wir lokal etwas zerstört haben und wollen die Files vom Server wieder zurück holen, dann können wir das mit:
sitecopy -s <Site>
erledigen. Achtung: Dabei werden alle(!) lokalen Änderungen mit den Dateien vom Server überschrieben. Es ist also eine gute Idee, lokal vorher eine Kopie zu machen.
Haben auf dem Server zwischenzeitlich Modifikationen von Dritten stattgefunden, dann stimmt natürlich die Vorstellung, die unser Sitecopy vom Server hat, nicht mehr (diese Vorstellung liegt in der oben erwähnten lokalen Fileliste). Dann muß mit:
sitecopy -f <Site>
diese Fileliste wieder aktualisiert werden. Danach können wir gewohnt weiterarbeiten.
| Befehl | Funktion | Hinweis |
|---|---|---|
sitecopy Site |
Zeigt, welche Änderungen auf dem Server zu tun wären, damit er der lokalen Version entspricht. | |
sitecopy -u Site |
Upload der lokalen Version zum Server, der Server wird der lokalen Seite angepaßt. | Files auf dem Server werden eventuell überschrieben (nur wenn
safe nicht in der Konfigurationsdatei steht).
Achtung: Files, die lokal nicht mehr vorhanden sind,
werden trotzdem auf dem Server gelöscht, unabhängig von
safe. (Ich denke, das ist ein Bug.) |
sitecopy -f Site |
Download der Fileliste vom Server, das sollte immer dann gemacht werden, wenn der Verdacht besteht, daß auf dem Server Änderungen von Dritten gemacht wurden. | |
sitecopy -s Site |
Download vom Server, die lokale Seite wird dem Server angepaßt. | Files werden lokal eventuell überschrieben oder gelöscht! |