Hallo Andreas,
ich habe den Beitrag mal ins Forum
Diskussion verschoben, weil hier erstmal kein Fehler im eigentlichen Sinn vorliegt.
efa1 (bis 1.9.0) hat beim Speichern einer Datenliste die vorherige Version in einen konfigurierbaren Backup-Ordner verschoben - wahlweise bei jedem Speichern, und/oder täglich, monatlich, und beim Konvertieren. Diesen Backup-Ordner konnte man auf einen separaten Datenträger legen, z.B. eine zweite Festplatte oder einen USB-Stick, und somit im Falle eines Datencrashes eine vorherige Version der Daten retten.
In efa2 funktioniert das etwas anders. efa2 schreibt die Dateien im Hintergrund (entgegen efa1), hat dafür aber ein Journal, das synchron mit jeder Änderung auf Platte geschrieben wird. Von jeder Datei behält efa die vorherige und vorvorherige Version. Im Falle eines Crashes oder Stromausfalls kann efa, falls das die zuletzt geschriebenen Daten zerstört haben sollte, den letzten Stand (i.d.R.
ohne jeglichen Verlust von Änderungen) automatisch wiederherstellen. Dazu ist noch nichtmal der Eingriff des Administrators nötig. Du kannst das gerne mal testen, indem Du eine Datei verstümmelst und efa dann startest.
Allerdings liegen diese Daten (d.h. die vorherigen Kopien und Journals) bei efa2 alle im selben Verzeichnis. Gegen einen Plattencrash hilft das also nicht.
Darüber hinaus bietet efa2 die Möglichkeit, Backups zu erstellen (das oben beschriebene sind keine Backups, sondern ein Mechanismus zur Crash Recovery). Backups können interaktiv erstellt werden - auch Remote. Außerdem hat efa2 ein Command Line Interface (CLI), über das sich Backups auch skriptgesteuert triggern lassen. Mit dem Kommando
Code: Alles auswählen
./efaCLI.sh admin@localhost/projectname -cmd "backup create all /my/directory"
erstellt efa ein Backup aller Daten des Projekts
projectname sowie der Konfiguration im Verzeichnis
/my/directory (analog mit
efaCLI.bat unter Windows).
Um nicht interaktiv das Admin-Paßwort eingeben zu müssen, kann das Paßwort per Kommandozeile mitgegeben werden (
admin:password@localhost...) - nicht empfohlen, oder besser - in einer Credentials-Datei ablegegt werden. Standardmäßig wertet efa die Datei
.efacred im Home Directory des Benutzers aus (z.B.
/home/username/.efacred unter Linux). In diese Datei muß in einer Zeile
stehen.
efaLive integriert das Backup von efa und ermöglicht, z.B. beim EInstecken eines USB-Sticks ein solches Backup auf dem Stick zu erzeugen. Außerdem kann efaLive durch einen Cron-Job gesteuert zu beliebigen Zeiten - z.B. einmal täglich - solch ein Backup erzeugen, und bei Bedarf (und Internetanbindung) auch per email verschicken. Natürlich kann man sich einen solchen Cron-Job auch ohne efaLive basteln, oder diese Funktionalität auch auf anderen Betriebssystem realisieren.
Was efa2 bislang
nicht tut:
- efa2 hat keinen Job Scheduler, über den sich periodische Aufgaben, wie z.B. das Erstellen eines Backups, aus efa heraus konfigurieren lassen. Zur Zeit überläßt efa das dem Benutzer, bzw. efaLive.
- efa2 erstellt die Journals und Kopien zur Crash Recovery im selben Verzeichnis wie die Live-Daten. Die Angabe eines anderen Verzeichnisses (auf einem anderen Datenträger) ist nicht möglich.
Für den ersten Punkt sehe ich im Augenblick nicht so dringenden Handlungsbedarf, da efa2 hier alle Schnittstellen bietet, um die Aufgabe zu lösen, und mit efaLive auch ein Angebot da ist, in dem das bereits alles integriert ist.
Über den zweiten Punkt werde ich nochmal nachdenken. Ein alternatives Verzeichnis für die Journals etc. möchte ich ungerne anlegen, weil dann wieder die Gefahr besteht, daß ein Benutzer dort aus Versehen oder mit Absicht drin rumpfuscht. Eventuell könnte ich in efa2 aber ein
Mirroring einbauen - daß efa optional
alle Daten doppelt schreibt - einmal im Verzeichnis
data, und einmal an einem beliebige, konfigurierbaren Ort. Letzterer könnte auf einem separaten Datenträger liegen. efa würde in dem Fall dort nur schreiben, und niemals lesen - d.h. ein automatisches Recovery würde immer nur von dem Primärverzeichnis erfolgen. (Möglicherweise könnte man auch nur die aktuellen Kopien dort schreiben, und auf die Journals etc. verzichten...).
Feedback und Meinungsäußerungen willkommen.
Gruß,
Nicolas