sshsync 2.1

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

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

sshsync ist eigentlich die Weiterentwicklung von 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, welches bei FTP sogar unverschlüsselt übertragen werden kann.
  2. Ein mit sshfs eingehängter Webspace ist wie ein lokales Verzeichnis, somit entfallen alle Probleme mit den Zeitstempeln die man unter curlftpfs hat (Falls sich der Ein oder Andere noch daran erinnert: ein mit curlftps eingehängtes FTP Verzeichnis gibt nach ca. 5,5 Monaten nur noch das Datum wieder aber nicht die Uhrzeit und je nach Jahreszeit ist die Uhrzeit um eine Stunde falsch).
  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.

Damit sshsync korrekt arbeiten kann benötigt es 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 und bei Vorhandensein überschrieben. 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. Die Idee dahinter ist, an einer lokalen Kopie der Webseite zu arbeiten, die Webseite offline zu überprüfen und anschließend mittels sshsync auf dem Webspace bereit stellen.

Das Programm steht unter der GPL und darf daher von jedem frei verwendet werden. Geschrieben und getestet wurde es unter Debian GNU/Linux, 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. Zum Download gibts ein komprimiertes tar-Archiv mit dem Quellcode und einer ausführbaren Datei, jeweils für die Debian Distributionen bullseye und bookworm.


Download

Debian 11 (bullseye) amd64 Debian 12 (bookworm) amd64
sshsync2.1-bullseye.tar.gz sshsync2.1-bookworm.tar.gz