sshsync 2.1

Beschreibung: sshsync ist ein von mir selbst geschriebenes kleines Konsolenprogramm für Linux in C/C++ zum synchronisieren des Webspaces per ssh.

Syntax: sshsync [--use-logs] lokalesVerzeichnis/ FTP-Verzeichnis/

sshsync ist eigentlich das gleiche Programm wie ftpsync, mit dem entscheidenden Unterschied, daß der entfernte Webspace nicht mittels curlftpfs eingehängt werden sollte, sondern mittels sshfs. Wer ssh auf dem Webspace seines Providers verwenden kann, dem empfehle ich dringend sshfs zu verwenden, da es ein paar entscheidende Vorteile bietet:

  1. Die Verbindung ist verschlüsselt, somit kann nicht wie bei FTP Daten auspioniert werden, wie z.B. das Paßwort.
  2. Ein mit sshfs eingehängter Webspace ist wie ein lokales Verzeichnis, somit entfallen alle Probleme mit den Zeitstempeln die man unter curlftpfs hat (siehe hierzu den rot umrandeten Kasten bei ftpsync.
  3. Bei sshfs wird nach dem Paßwort gefragt und somit muß man es nicht wie bei curlftpfs im Klartext an den Befehl anhängen.

Damit sshsync arbeiten kann, muß ein entfernter Webspace mittels sshfs in den Verzeichnisbaum eingehängt werden, auf das dann sshsync mit der zweiten Pfadangabe zugreift.

Da sshsync eigentlich das gleiche Programm wie ftpsync ist mit dem einzigen Unterschied, daß es auf die Verwendung mit sshfs abgestimmt wurde, gelten dieselben Anforderungen wie bei ftpsync. Daher benötigt sshsync die Konsolenprogramme "find" (zum auflisten der Dateien), "ls" (für den Datumsstempel), "mkdir" (zum Erzeugen nicht existierender Verzeichnisse), "cp" um die Dateien zu kopieren, "rm" um sie zu entfernen und "rmdir" um leere Verzeichnisse zu entfernen. Diese Programme sind allerdings Standardprogramme und sollten bei jeder Linux-Distribution vorhanden sein.
sshsync überprüft nur, ob im lokalen Verzeichnis neuere Dateien vorhanden sind oder Dateien in einem der beiden Verzeichnisse fehlen. Lokal neuere Dateien oder auf dem entfernten Webspace fehlende Dateien werden nach der Bestätigung auf den Webspace kopiert. Fehlende lokale Dateien werden auf dem Webspace gelöscht. In diesem Sinne hat sshsync die Funktion eines mirrors. Der entfernte Webspace wird auf den Stand des lokalen Verzeichnisses gebracht.

Das Programm steht unter der GPL und darf daher von jedem frei verwendet werden. Geschrieben und getestet wurde es unter Debian GNU/Linux Codenamen lenny, squeeze und wheezy, könnte aber auch auf anderen Linux-Distributionen funktionieren. Für auftretende Fehler, Schäden oder Datenverlust die das Programm verursacht, übernehme ich keinerlei Haftung. Die Benutzung erfolgt auf eigene Gefahr, jedoch ist die Wahrscheinlichkeit, daß nach dem Gebrauch das System nicht mehr funktioniert sehr gering, da das Programm lediglich Dateien kopiert oder löscht und eventuell Ordner anlegt. Bis zu der Ja/Nein-Abfrage wird an den Verzeichnissen auch nichts verändert, somit kann man das Programm auch nur dazu benutzen, um eventuelle Unterschiede in den Verzeichnissen anzeigen zu lassen.

Zum Kompilieren benötigt man den Gnu-C++-Compiler (enthalten in dem Paket build-essential) und kann mittels folgendem Befehl eine ausführbare Datei erstellen:

# g++ sshsync.cpp -o sshsync

Die Datei kann man einfach in das Verzeichnis /usr/bin kopieren und somit steht der Befehl sshsync zur Verfügung.


Download

Quellcode
sshsync.cpp