Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   HLBackup - Inkrementelle Vollbackups erstellen (https://www.delphipraxis.net/109664-hlbackup-inkrementelle-vollbackups-erstellen.html)

JayBee 5. Mär 2008 16:01


HLBackup - Inkrementelle Vollbackups erstellen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Huhu,

Dies ist mein erstes Programm für die "Öffentlichkeit", daher sieht es mit Bedienkomfort und Oberfläche warscheinlich noch nicht so prickelnd aus - aber es funktioniert und meiner Meinung nach ist es nützlich genug hier mal vorgestellt zu werden.


Vielleicht ist einigen von euch ja rsync bekannt - dieses kleine Tool erstellt ein Backup unter zuhilfenahme von Hardlinks des letzten Backups (--> jedes Backup sieht aus wie ein Vollbackup, belegt aber nur den Speicher eines Inkrementellen Backups).
Da seit NTFS auch Windows diese Hardlinks unterstützt, und eine Portierung von rsync mittels CygWin meißt recht kompliziert ist, habe ich mich drangesetzt und ein Programm geschrieben, welches Tägliche, Wöchentliche, Monatliche und Jährliche Backups erstellt und diese via Hardlinks zum zuletzt erstellten Backup verlinkt.

Die Bedienung dürfte recht selbsterklärend sein. Mithilfe (bisher) 3er Parameter kann das Programm gesteuert werden:
  • -auto; -a: Kein Interface, ein Backup aus den gespeicherten Einstellungen wird erstellt
  • -shutdown; -s: Nach dem Backup wird der Rechner automatisch heruntergefahren
  • -waitforbackupdrive; -w: Nur Sinnvoll in Verbindung mit -a; Das Programm wartet, bis das Backuplaufwerk verfügbar ist und beginnt dann mit dem Backup (ohne diesen Parameter beendet sich das Programm einfach)

Was eventuell noch erwähnenswert ist: Das Programm speichert alle Einstellungen in einer settings.ini im Programmpfad.

Für Folgende Versionen habe ich noch eine Erkennung verschobener Dateien geplant, aber mein aktueller Ansatz (über FindFirst) ist noch viel zu langsam...

/edit: Programm getestet unter Windows Vista - sollte auch unter XP laufen (natürlich nur mit NTFS-Laufwerken!)

Neuste Version: 0.2.0.13
Neuerungen:
  • Alle Einstellungen und Dateiendungen werden komprimiert in einer settings.dat gespeichert - nicht unbedingt hilfreich zur fehlersuche, aber noch klappt ja alles (aktuell noch im Programm-Verzeichnis - Ändert sich sobald alles halbwegs sauber läuft)
  • Man kann das Backup abbrechen, dabei wird alles bisher kopierte gelöscht (Da es sonst zu Problemen beim nächsten Backup kommen könnte)
  • Die Option zum Herunterfahren des Computers nach dem Backup kann während des Backups geändert werden
  • Dateien können über ihren Namen vom Backup ausgeschlossen werden

Noch eine Frage: Wenn ein Verzeichnis hinzugefügt wird, werden die Dateiendungen aller Dateien im Verzeichnis erfasst - über FindFirst/Next dauert das allerdings bei vielen Dateien recht lang - gibts da was schnelleres?

TODO
  • Verzeichnisse vom Backup ausschließen
  • Option zum Verifizieren der kopieren Dateien
  • ...


Für eure Kritik wäre ich sehr dankbar!

Viel Spass mit dem Tool
Josef

jmit 5. Mär 2008 18:11

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
Zitat:

Zitat von JayBee
Was eventuell noch erwähnenswert ist: Das Programm speichert alle Einstellungen in einer settings.ini im Programmpfad.

...und was macht der Anwender, der als Benutzer keine Berechtigung für den Programmordner hat?

Das Erstellen eines Backup für einen Ordner ist meiner Meinung nach in Deinem Programm nicht selbsterklärend. Da habe ich schon bessere Programme gesehen.

Auch ist der Backupvorgang, dargestellt durch ein kleines Fenster, nicht sehr benutzerfreundlich.
Aber ich bin trotzdem schon auf die weiteren Versionen gespannt.

Warum braucht Dein Programm für 102 Dateien (ca. 8MByte) über 10 Minuten zum Kopieren?

Das Programm erscheint im Taskmanager zweimal mit "keine Rückmeldung" und lies sich nur über den Taskmanager beenden.
Anschliessend habe ich meinen Rechner neugestartet. :( :(


Gruß Jörg

taaktaak 5. Mär 2008 18:17

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
Hmmmm,
lässt sich nicht starten: "Es befindet sich kein Datenträger ... in Laufwerk \device\harddisk4\dr7 - so ein Laufwerk habe ich gar nicht :stupid:

// edit - ahhh, geht trotzdem weiter, aber das Fenster "Programm wird geladen" schließt sich nicht???
// ein zweites langes hmmmm, Buttons sind nicht gegenseitig verriegelt, startet (und meldet) ein Backup obwohl nix selektiert war - na, das ist wohl noch nicht so wirklich serienreif!

C.Schoch 5. Mär 2008 20:21

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
Hi,
Ich habs mir dein Programm mal kurz angeschaut,
- Wenn ich keine Zielordner angebe führt das zu einer Exception
- Wenn ich eine nicht vorhandenen Zielordner wird das entweder nicht erkannt oder es kommt zu einer Exception
- Das Starten dauert sehr lange wenn die Jobs recht umfangreich sind
- Es werden komischerweise keine Dateien kopiert
- Log Einstellungen werden nicht gespeichert
- In den Allgemeinen Einstellungen sind negative Werte möglich
- In der GroupBox "Ein-/Ausschließen" kann ich die Tabsheets nicht auswählen
- usw..

Als Grundlage schon mal nicht schlecht, bedarf aber noch einiger Überarbeitung.

Lass dich aber von mir/uns nicht entmutigen immer weiter dran bleiben! :bounce1:

JayBee 5. Mär 2008 21:02

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
Hui - dafür dass es bei mir einwandfrei läuft :D

Zu jmit:
  • Das mit dem Speichern der Einstellungen ist bisher aus praktischen Gründen so - Sobald das Programm einen "annähernd ausgereiften" Status erreicht hat werde ich diese im Anwendungsdaten-Verzeichnis speichern
  • Warum er zum kopieren so lange braucht weiß ich leider nicht - bei mir tut er's eigentlich recht schnell.

Zu taaktaak:
  • Die Meldung "Es befindet sich kein Datenträger..." müsste weg sein - hab ne Codezeile ergänzt.
  • Das mit den Buttons muss ich mir erst noch angewöhnen - da ich Programme bisher nur für mich schrieb brauchte ich sowas nicht
  • Was wäre denn zur Darstellung des Backup-Prozesses günstiger?
    Ein Label auf dem der Dateiname der aktuellen Datei/des Verzeichnisses angezeigt wird und ein Button zum Abbrechen des Backups vielleicht?
  • Und das mit dem Beenden tut mir leid - wiederrum muss ich meine Unwissenheit preisgeben und sagen: kA woran das liegt :(

Zu C.Schoch:
  • Ohne Zielordner gibts jetzt ein Meldung
  • Wenn der Zielordner nicht existiert, versucht das Programm ihn anzulegen - Sollte das nicht erfolgreich sein, "sollte" er eigentlich abbrechen...
  • Das Starten dauert so lange, da das Programm alle in den Quellordnern Vorhandenen Dateien bzw deren Endungen erfasst - eine Möglichkeit wäre, diese zu speichern (was aber den benötigten Speicherplatz der Einstellungen vergrößern würde)
  • Das keine Dateien kopiert werden ist merkwürdig - sollte er eigentlich...
  • Log Einstellungen werden jetzt gespeichert
  • In den Allgemeinen Einstellungen sind ab sofort nur noch positive Werte erlaubt
  • Die anderen TabSheets unter Ein-/Ausschließen sind (noch) gesperrt, da diese Anzeigen irgendwie nicht mehr wollen :?

Das wärs fürs erste - ich danke euch allen für die (zahlreiche) Kritik :-)
Gruß
Josef

C.Schoch 6. Mär 2008 21:24

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
Hi,
Ich bins wieder ;)
Habs mal mit der neuesten Version weiter getestet:
- Das starten dauert auch ohne einen Job relativ lange
- Wenn ich alle "Allgemeinen Einstellungen" abgewählt habe wird trotz sofortiger Erfolgsmeldung nichts kopiert
- Du hast doch rechts den schönen Reiter "Verzeichnisse", du könntest von dort aus das bestücken der beiden Edits erlauben
- Das Backup ist etwas langsam (Nach ~10 min und 1GB Speicherauslastung hab ichs versucht abzubrechen --> Systemabsturz)
- Abbruch ist nicht möglich (Form wird weiß)
- Sowas (file=Keine Logdatei erstellen
memo=Nichts anzeigen)
kann dir im Falle einer Lokalisierung ein par Kopfschmerzen bereiten, besser den Index speichern

JayBee 7. Mär 2008 20:31

Re: HLBackup - Inkrementelle Vollbackups erstellen
 
So - morgen gibt es (schon) wieder eine neue Version - muss die erst noch mal testen.
  • Habe mal von CopyFile auf SHFileOperation umgestellt - vielleicht geht das schneller.
  • Sollte kein Backup-Intervall gewählt sein, gibt es eine Warnung.
  • Die Maximalzahl aller Backups ist auf 1023 beschränkt (nur um allem vorzubeugen - mehr Hardlinks auf eine Datei sind unter Windows/NTFS laut meinen Informationen nicht möglich).
  • Der Dateiname der aktuelle Datei wird nicht (mehr) angezeigt (zu unperformant) - aber es gibt einen Button zum Abbrechen des Backups.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz