Verwalten von Remote-Websites mit Sitecopy unter Ubuntu

sitecopy ist ein Werkzeug zum Kopieren lokal gespeicherter Websites auf einen entfernten Webserver (mittels FTP oder WebDAV). Es hilft Ihnen, die Remote-Site mit Ihrer lokalen Kopie synchron zu halten, indem es geänderte lokale Dateien hochlädt und Remote-Dateien löscht, die auf dem lokalen Computer gelöscht wurden. Dieses Tutorial zeigt, wie Sie Ihre Remote-Website von Ihrem lokalen Ubuntu System aus mit Sitecopy verwalten können.

1 Vorbemerkung

Ich benutze den Benutzernamen till auf meinem lokalen Ubuntu-Desktop (ich bin auf meinem lokalen Linux-Desktop als dieser Benutzer angemeldet – bitte nicht als root einloggen). Die Dateien für die entfernte Website example.com werden im Verzeichnis /home/till/sites/example.com/ auf dem lokalen Computer gespeichert. Das Stammverzeichnis des entfernten Dokuments lautet /var/www/example.com/web/.

Sie können Sitecopy mit FTP und WebDAV verwenden, also sollten Sie entweder einen FTP- oder einen WebDAV-Account auf dem Remote-Server haben. Ich verwende hier den FTP-Benutzernamen defaulttill und das Passwort howtoforge.

Die Remote-Website, die ich für diese Beispiele verwende, wurde mit ISPConfig erstellt. Aber jede Website, auf die Sie FTP- oder WebDAV-Zugang haben, wird funktionieren.

2 Installieren der Sitecopy

Sitecopy kann wie folgt auf dem lokalen Desktop installiert werden (wir benötigen Root-Rechte, daher verwenden wir sudo):

sudo apt-get -y install sitecopy

Sie sollten nun einen Blick auf die Man Page von sitecopy werfen, um sich mit den Optionen vertraut zu machen:

man sitecopy

3 Konfigurieren der Sitecopy

Gehen Sie in Ihr Heimatverzeichnis auf dem lokalen Desktop…

cd ~

… und erstellen Sie das Verzeichnis .sitecopy mit den Rechten von 700 (sitecopy verwendet dieses Verzeichnis, um die Datei-Details zu speichern):

mkdir -m 700 .sitecopy

Als nächstes erstellen Sie die Sitecopy-Konfigurationsdatei .sitecopyrc:

touch .sitecopyrc
chmod 600 .sitecopyrc

Öffnen Sie die Datei…

nano .sitecopyrc

… und füllen Sie die Konfiguration für die Website example.com aus. Hier sind zwei Beispiele, eines für FTP…

site example.com
  server example.com
  username defaulttill
  password howtoforge
  local /home/till/sites/example.com/
  remote ~/web/
  exclude *.bak
  exclude *~

… und eine für WebDAV:

site example.com
  server example.com
  protocol webdav
  username defaulttill
  password howtoforge
  local /home/till/sites/example.com/
  remote /var/www/example.com/web/
  exclude *.bak
  exclude *~

(Sie können für jede Website, die Sie mit Sitecopy verwalten möchten, eine Stanze definieren).

Der Site-Anweisung muss ein Name für die Website folgen – Sie können einen frei wählen, z.B. example.com oder mysite. Dieser Name wird später in den Sitecopy-Befehlen verwendet. Die folgenden Konfigurationsoptionen, die zu dieser Site gehören, müssen eingerückt werden!

Die meisten der folgenden Konfigurationsoptionen sind selbsterklärend. Das Standardprotokoll ist FTP; wenn Sie WebDAV verwenden möchten, geben Sie bitte das Protokoll webdav an. Die lokale Direktive enthält den lokalen Pfad der Website-Kopie, remote den Pfad der Website auf dem Remote-Server – er kann absolut oder relativ sein. Wenn Ihr Benutzer im Chroot-Modus arbeitet (wie es normalerweise bei FTP-Benutzern der Fall ist), sollten Sie einen relativen Pfad (wie ~/ oder ~/web) verwenden. Andernfalls verwenden Sie einen absoluten Pfad.

Die Ausschlusslinien sind optional, sie sollen nur zeigen, wie Sie Dateien von der Wartung durch Sitecopy ausschließen können.

Sie können mehr über die Sitecopy-Konfiguration auf der Manpage erfahren:

man sitecopy

4 Erste Verwendung

Bevor Sie Sitecopy zum ersten Mal verwenden, müssen Sie entscheiden, welches der folgenden drei Szenarien zu Ihrer Situation passt:

  1. Vorhandene Remote-Site und lokale Kopie, beide synchronisiert.
  2. Vorhandener entfernter Standort, keine lokale Kopie.
  3. Neuer entfernter Standort, vorhandene lokale Kopie.

4.1 Vorhandene Remote-Site und lokale Kopie, beide synchronisiert

Wenn sowohl der entfernte Standort als auch die lokale Kopie existieren und synchronisiert sind, führen Sie

sitecopy --catchup example.com

um die Sitecopy so zu gestalten, dass die lokale Site als genau die gleiche wie die entfernte Kopie angesehen wird. Ersetzen Sie example.com durch den Namen der von Ihnen verwendeten Website in der .sitecopyrc-Datei.

[email protected]:~$ sitecopy --catchup example.com
sitecopy: Catching up site `example.com' (on example.com in ~/web/)
sitecopy: All the files and and directories are marked as updated remotely.

4.2 Vorhandener entfernter Standort, keine lokale Kopie

Wenn Sie keine lokale Kopie der vorhandenen Remote-Website haben, führen Sie

sitecopy --fetch example.com

zuerst, damit sitecopy die Liste der Dateien vom Remote-Server holt (ersetzen Sie example.com durch den Namen der von Ihnen verwendeten Site in der .sitecopyrc-Datei):

[email protected]:~$ sitecopy --fetch example.com
sitecopy: Fetching site `example.com' (on example.com in ~/web/)
File: error/503.html - size 1906
File: error/502.html - size 1881
File: error/500.html - size 1851
File: error/405.html - size 1810
File: error/404.html - size 1806
File: error/403.html - size 1809
File: error/401.html - size 1806
File: error/400.html - size 1792
File: stats/.htaccess - size 128
File: robots.txt - size 14
File: index.html - size 1861
File: favicon.ico - size 7358
File: .htaccess - size 26
Directory: error/
Directory: stats/
sitecopy: Fetch completed successfully.

Dann laufen Sie

sitecopy --synch example.com

um den lokalen Standort von der entfernten Kopie aus zu aktualisieren.

sitecopy: Synchronizing site `example.com' (on example.com in ~/web/)
Creating error/: done.
Creating stats/: done.
Downloading error/503.html: [.] done.
Downloading error/502.html: [.] done.
Downloading error/500.html: [.] done.
Downloading error/405.html: [.] done.
Downloading error/404.html: [.] done.
Downloading error/403.html: [.] done.
Downloading error/401.html: [.] done.
Downloading error/400.html: [.] done.
Downloading stats/.htaccess: [.] done.
Downloading robots.txt: [.] done.
Downloading index.html: [.] done.
Downloading favicon.ico: [.] done.
Downloading .htaccess: [.] done.
sitecopy: Synchronize completed successfully.

4.3 Neuer entfernter Standort, vorhandene lokale Kopie

Wenn die lokale Kopie vorhanden ist, Sie aber einen leeren entfernten Standort haben, führen Sie

sitecopy --init example.com

zuerst die Website zu initialisieren. Ersetzen Sie example.com durch den Namen der von Ihnen verwendeten Website in der .sitecopyrc-Datei.

[email protected]:~$ sitecopy --init example.com
sitecopy: Initializing site `example.com' (on example.com in ~/web/)
sitecopy: All the files and directories are marked as NOT updated remotely.

Dann laufen Sie:

sitecopy --update example.com

um die lokale Kopie auf den entfernten Standort hochzuladen:

[email protected]:~$ sitecopy --update example.com
sitecopy: Updating site `example.com' (on example.com in ~/web/)
Creating stats/: done.
Creating data/: done.
Creating error/: done.
Uploading stats/.htaccess: [.] done.
Uploading data/index.html: [.] done.
Uploading error/403.html: [.] done.
Uploading error/401.html: [.] done.
Uploading error/404.html: [.] done.
Uploading error/503.html: [.] done.
Uploading error/400.html: [.] done.
Uploading error/502.html: [.] done.
Uploading error/405.html: [.] done.
Uploading error/500.html: [.] done.
Uploading index.html: [.] done.
Uploading robots.txt: [.] done.
Uploading .htaccess: [.] done.
Uploading favicon.ico: [.] done.
sitecopy: Update completed successfully.

5 Verwendung von Sitecopy

Danach ist die Nutzung der Sitecopy sehr einfach. Sie können mit Ihrer lokalen Kopie arbeiten und Dateien aktualisieren, erstellen und löschen. Ein erster, aber optionaler Schritt ist die Durchführung von

sitecopy example.com

um herauszufinden, welche Dateien sich lokal geändert haben (ersetzen Sie example.com in der .sitecopyrc-Datei durch den Namen der von Ihnen verwendeten Website):

[email protected]:~$ sitecopy example.com
sitecopy: Showing changes to site `example.com' (on example.com in ~/web/)
* These items have been added since the last update:
info.php
sitecopy: The remote site needs updating (1 item to update).

Um Ihre entfernte Website mit Ihrer lokalen Kopie zu synchronisieren (d.h. neue und geänderte Dateien auf den entfernten Server hochzuladen und lokal gelöschte Dateien auf dem entfernten Server zu löschen), führen Sie einfach

sitecopy --update example.com
[email protected]:~$ sitecopy --update example.com
sitecopy: Updating site `example.com' (on example.com in ~/web/)
Uploading info.php: [] done.
sitecopy: Update completed successfully.

Das ist es! Viel Spaß beim Sitecopy!

6 Links

Das könnte Dich auch interessieren …