Webrsnapshot ist Webinterface für das Backup Programm rsnapshot programmiert in Perl mit Mojolicious, JavaScript, CSS und HTML.
Die Idee
Ich hatte die Idee ein Webinterface für rsnapshot zu entwickeln schon seit dem ich angefangen habe es zu benutzen im Jahr 2005. Obwohl ich sehr erfahrener Unix Administrator bin und die Arbeit in der Konsole liebe, finde ich, dass es ab und zu besser ist, wenn man bestimmte Prozesse und Arbeiten in einer graphische Oberfläche erledigen kann. Besonders wichtig ist aber in dem Fall, dass der Nutzer nicht eingeschränkt wird über die graphische Oberfläche.
In meinem Leben dürfte ich mich bis jetzt mit sehr viele Backup Programmen wie die Zeitmaschine unter MacOS X, BackupPC, Bacula etc. beschäftigen. Aber keins davon hat sich bis jetzt wie rsnapshot mit so eine Stabilität und Anspruchslosigkeit bewiesen.
Ich musste mich manchmal mit sehr blöde Probleme kämpfen wie z.B.:
- Backup kann nicht wiederhergestellt werden, weil das Betriebssystem aktualisiert wurde und die Verbindungskodierung sich geändert hat (keine Rückwärtskompatibilität)
- oder nach eine Neuinstallation wo sich einige Ids geändert haben.
- Bei BackupPC muss man erst alle bevorstehende Backups anhalten, bevor man mit eine Wiederherstellung beginnen kann. Wenn das 30 – 40 Server sind, muss man sich schon eine Menge Zeit reservieren nur gestartete Backups zu stoppen.
Da ich rsnapshot schon an viele Stellen als Backuplösung eingesetzt habe, hab ich mich entschieden auch ein Webinterface dafür zu entwickeln. Lange Zeit habe ich mich gefragt, welche Programmiersprache am besten dafür geeignet ist. Da rsnapshot im Perl programmiert ist, fand ich Perl am sinnvollsten auch für mein Projekt. So oder so muss Perl auf dem Backupserver installiert werden.
Für Webrsnapshot habe ich Mojolicious Web Framework benutzt. Dieses Framework kommt sogar mit eigenem Webserver, was die Nutzung von Drittprogramme dafür überflüssig macht. Mojolisious hat bereits WebSocket client/server Implementierung und unterstützt IPv6, TLS und viel anderes, was ich für dieses Projekt bruache.
Screenshots
{gallery}projects/webrsnapshot/screenshots{/gallery}
Source
Die Webrsnapshot Sourcecode finden Sie auf meinem GitHub Seite: https://github.com/dobrevg/webrsnapshot
Download
git clone https://github.com/dobrevg/webrsnapshot.git <your-target-dir>
Demo
Hier können Sie die Demo Version von Webrsnapshot testen. Die ist nicht 100% funktionierend und wirft Fehlermeldung beim Speichern der Konfiguration. Das ist eine schreibgeschützte Demo Installation, die auf dem Server nicht schreiben darf.
Benutzer und Passwort sind demo/demo.