AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HLBackup - Inkrementelle Vollbackups erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

HLBackup - Inkrementelle Vollbackups erstellen

Ein Thema von JayBee · begonnen am 5. Mär 2008 · letzter Beitrag vom 7. Mär 2008
Antwort Antwort
JayBee
Registriert seit: 20. Jul 2006
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
Miniaturansicht angehängter Grafiken
hlbackup_640.jpg  
Angehängte Dateien
Dateityp: exe hlbackup_654.exe (512,5 KB, 27x aufgerufen)
 
Benutzerbild von jmit
jmit

 
Turbo Delphi für Win32
 
#2
  Alt 5. Mär 2008, 18:11
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
  Mit Zitat antworten Zitat
taaktaak

 
Delphi 7 Professional
 
#3
  Alt 5. Mär 2008, 18:17
Hmmmm,
lässt sich nicht starten: "Es befindet sich kein Datenträger ... in Laufwerk \device\harddisk4\dr7 - so ein Laufwerk habe ich gar nicht

// 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!
Ralph
  Mit Zitat antworten Zitat
C.Schoch

 
Turbo Delphi für Win32
 
#4
  Alt 5. Mär 2008, 20:21
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!
  Mit Zitat antworten Zitat
JayBee

 
Delphi 5 Standard
 
#5
  Alt 5. Mär 2008, 21:02
Hui - dafür dass es bei mir einwandfrei läuft

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
  Mit Zitat antworten Zitat
C.Schoch

 
Turbo Delphi für Win32
 
#6
  Alt 6. Mär 2008, 21:24
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
  Mit Zitat antworten Zitat
JayBee

 
Delphi 5 Standard
 
#7
  Alt 7. Mär 2008, 20:31
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 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