Automatisierter Homepage-Upload
Autor: Karsten Kruse
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.
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".
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.
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 :).
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.
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.
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.
Wir müssen jetzt nur noch die Verzeichnisse abgleichen. Dabei gibt es drei Möglichkeiten:
sitecopy -c newbieweb
ein um die
Seiten als gleich zu markieren.sitecopy -f newbieweb
ist das schnell gemacht. Jetzt downloaden wir das
Serververzeichnis noch mit sitecopy -o -s newbieweb
auf unser lokales Verzeichnis.sitecopy -f newbieweb
ein, gefolgt von sitecopy -o -u newbieweb
.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.
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
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.