www.Newbie-Net.de

Sitecopy

Automatisierter Homepage-Upload

Autor: Karsten Kruse

Inhalt

Vorwort

Du hast eine oder mehrere Homepages auf verschiedenen Servern und bist genervt von umständlichen FTP-Programmen? Ich werde jetzt ein Tool vorstellen das genau dieses Problem löst. Es heißt Sitecopy und wird deine Erwartungen sicher erfüllen. Einmal eingerichtet, wird man sich nicht mehr um Details kümmern müssen.

Ich hatte immer schon ein Problem mit langweiligen Aufgaben. Als ich mit einer kleinen Homepage angefangen hatte kam in mir schnell der Wunsch auf, den FTP-Upload zu automatisieren. Welche Datei hatte ich schon hochgeladen, welche hatte ich verändert? Diese Fragen wurden mit zunehmender Größe der Homepage immer schwerer zu beantworten.

Dann bin ich irgendwann auf Linux umgestiegen und habe durch Zufall von Sitecopy gehört. Das Programm hat mich gleich begeistert, denn es versprach alles das was Windowsprogramme nur gegen viel Geld konnten.

Installation mit RPM

Erstmal müsst ihr natürlich Sitecopy installieren. Eure Distribution hat sicher auch ein fertiges Paket. Bei Suse z.B. heißt es "sitecopy" (wer hätte das gedacht) und ist in der Serie "n" zu finden. Installiert es mit Yast oder auf der Kommandozeile mit "rpm -i (Paketname)". Die korrekte Installation prüft ihr mit "sitecopy --version".

Die Installation aus den Sourcen

Sollte bei uns der unwahrscheinliche Fall eintreten, dass unsere Distribution kein Sitecopy mitbringt, downloaden wir uns den Quellcode aus dem Internet und kompilieren uns Sitecopy selbst. Hier eine kurze Anleitung.

Downloaden und Entpacken

Von der Sitecopyhomepage http://www.lyra.org/sitecopy/ laden wir uns die Sourcen als sitecopy-0.13.4.tar.gz in ein temporäres Verzeichnis. Wir entpacken die Sourcen mit gzip -dc sitecopy-0.13.4.tar.gz | tar xvf -. Jetzt haben wir den menschenlesbaren Sourcecode vorliegen, aus dem wir eine maschienenlesbare, ausführbare Datei erstellen können. Das hört sich schwerer an als es ist :).

Configure

Wir wechseln mit cd in das eben entpackte Verzeichnis und geben die Anweisung die Sourcen zu konfigurieren. Das übernimmt allgemein das Programm GNU/Autoconf. Wir geben also als Root ./configure --prefix=/usr/local ein. Jetzt fragt ihr euch sicher was --prefix=/usr/local bedeutet? Diese Option weist Autoconf an, alle Pfade so einzustellen, dass das fertige Programm unterhalb des gewünschten Verzeichnisses installiert wird. Dieser Pfad wird standardmässig für Selbstkompiliertes genommen. Bei neueren Versionen von Sitecopy ist auch eine gnomekompatible grafische Oberfläche dabei. Um sie mitzukompilieren lautet der Befehl ./configure --prefix=/usr/local --enable-gnomefe. Bei mir allerdings hat es mit der grafischen Oberfläche nicht geklappt. Ich hatte wohl nicht die neuesten Gnomeversionen. Weitere Optionen könnt ihr mit ./configure --help herausfinden. Jetzt sollten einige Meldungen durchrauschen. Sollte ./configure abbrechen müsst ihr prüfen ob ein Compiler (z.B. gcc) sowie bison, flex und die Headerdateien des Kernels installiert sind. Weitere Tipps könnt ihr wie immer durch das Lesen der beiliegenden Dokumentation herausfinden.

Make, Make Install

Nachdem ./configure erfolgreich durchgelaufen ist, stoßen wir den Kompiliervorgang mit make an. Danach noch ein make install und wir sind fertig mit der Installation.

Die Konfigurationsdatei

Nachdem wir die Software installiert haben legen wir uns die Konfigurationsdatei an. Sie wird im Homeverzeichnis mit "touch ~/.sitecopyrc" angelegt. Weil die Konfigurationsdatei die Passwörter im Klartext enthält muss sie noch mit den richtigen Rechten ausgestattet werden damit nicht jeder ihren Inhalt lesen kann. Das machen wir mit chmod 600 ~/.sitecopyrc. Auch ein Verzeichnis in dem Sitecopy seine Datenbanken über die Inhalte und Dateien ablegt legen wir schnell mit mkdir -m 700 .sitecopy an und öffnen anschliessend mit einem Editor unsere .sitecopyrc. Mein Lieblingseditor ist mcedit, deshalb gebe ich auch "mcedit ~/.sitecopyrc" ein.

Bevor ich euch ein Beispiel für eine Konfiguration gebe erkläre ich wie Sitecopy arbeitet. Ihr legt euch ein Verzeichnis in eurem Heimatverzeichnis an, da kommen alle Homepages rein die ihr habt, für jede Homepage ein Verzeichnis. Etwa so könnte das aussehen:

 ~/home
   |
   |---/webs
   |     |
   |     |
   |     |----/newbieweb
   |     |
   |     |
   |     `----/privatweb
   |

Ich nehme an ihr habt schon Homepages auf Webservern, deswegen tragen wir sie jetzt in die Konfigurationsdatei ein. Hier ist meine Konfiguration als Beispiel:

 site privatweb                        # Jeder Server bekommt einen Namen
   server ftp.isis.de                  # Der FTP-Server
   username karsten                    # Mein Loginname
   password geheim                     # Mein Passwort
   local /home/karsten/webs/privatweb/ # Das vorhin angelegte Verzeichnis
   remote ~/public_html/               # Die Seiten müssen in dieses Verzeichnis
   site newbieweb                      # Jeder Server bekommt einen Namen
   server www.newbie-net.de            # Der FTP-Server
   username karsten                    # Mein Loginname
   password obergeheim                 # Mein Passwort
   local /home/karsten/webs/newbienet/ # Das vorhin angelegte Verzeichnis
   remote ~/                           # Die Seiten müssen in dieses Verzeichnis

Fertig. Wir speichern die Konfigurationsdatei ab.

Verzeichnisabgleich

Wir müssen jetzt nur noch die Verzeichnisse abgleichen. Dabei gibt es drei Möglichkeiten:

Welche von den Möglichkeiten es auch immer war, die Dateien auf dem Server stimmen jetzt haargenau mit denen auf der Festplatte überein. Ab jetzt wird nur noch auf dem lokalen Server gearbeitet und dann mit sitecopy -o -u newbieweb das Serververzeichnis aktualisiert.

Natürlich hat Sitecopy noch mehr Kommandozeilenoptionen aber das wichtigste wisst ihr jetzt. Den Rest könnt ihr mit man sitecopy und sitecopy --help herausfinden.

Automatisierung

Um nun nicht jedes mal das Programm per Hand starten zu müssen, empfiehlt es sich, Sitecopy in das Skript /etc/ppp/ip-up aufzunehmen. Allerdings muss Sitecopy auch von der Person ausgeführt werden, in deren Homeverzeichnis sich die Datei ".sitecopyrc" befindet. Da das Script ip-up jedoch als root ausgeführt wird, muss man entweder die Konfigurationsdatei nach /root/ kopieren, oder man lässt den Befehl mit Hilfe von su unter einer anderen Benutzerkennung laufen:

 su -c "sitecopy -u newbieweb" benutzername

Nachwort

Bei CGI-Skripten muss man noch nachhelfen, da diese auf den Server ohne ausführbare Rechte kopiert werden. Ein Eintrag der Form permissions all in der Datei .sitecopyrc sorgt für Abhilfe. Hier noch der Link zur Sitecopy-Homepage: http://www.lyra.org/sitecopy/.

Kommentare, Wünsche und Anträge an Karsten Kruse tecneeq(at)tecneeq(dot)de.