Sicherungssoftware (Batch) veröffentlichen

H

Heinrich

Gast
Hi
Habe für mich zuhause ne eigene Batch-Datei geschrieben, die ein Backup aller meiner Daten auf ein Netzlaufwerk macht.
Da das Ganze immer noch im Beta-Studium ist (zwar bis jetzt problemlos funktioniert, aber man weiß ja nie ;) ) wollte ich fragen, ob man das hier oder irgendwo anders veröffentlichen kann? Am besten auf einer Seite, die stark frequentiert ist, sprich Leute sich die Software auch anschauen und dann ihre Meinung dazu geben und evtl. Fehler korrigieren. Schlussendlich geht es mir auch darum, dass ich Menschen, die keine aufwendigen Lösungen suchen, eine kostenlose alternative Backuplösung anbieten kann.

Hier ne kurze Beschreibung was die Batch-Datei kann:

1. Verbindet sich mit einem Netzlaufwerk (kann auf Wunsch natürlich rausgestrichen werden); Passwort und Benutzer werden mit ExecuteEncrypted verschlüsselt dargestellt.
2. Erstellt, wenn nötig das Verzeichnis auf dem Zieldatenträger
3. Sichert die Dateien
4. Vergleicht die zu sichernden Dateien auf dem Quell- mit dem Zieldatenträger
5. Gibt Meldung wenn Sicherung erfolgreich (In zwei Log-Dateien)
6. Gibt Meldung, falls Sicherung nicht erfolgreich (In zwei Log-Dateien. Zusätzlich wird automatisch eine Meldung in den Autostart geschrieben, dass die Sicherung nicht erfolgreich war)
7. Fährt PC nach der Sicherung automatisch herunter

Es handelt sich dabei übrigens um ein inkrementelles Backup, die einzelnen Parameter können aber natürlich verändert werden.

Wer Interesse hat (und falls erlaubt) veröffentliche ich den Quelltext hier. Falls nicht erwünscht oder falls der Beitrag hier völlig fehl am Platz ist, dann bitte löschen ;) Wollte aber nichts unversucht lassen und hoffe, dass ich das halbwegs richtige Forum getroffen hab.

Danke

Mfg, Heinrich
 
Rein rechtlich sollte eine Veröffentlichung nichts im Wege stehn, da der Author (du) selbst entscheiden kann ob er Patent anmeldet und es verkaufen will oder es frei zugänglich macht. Wobei eine Batchdatei ja keinerlei Kopierschutz hat (Verkauf).

Ob es im Sinne der Forumregeln ist, solltest du einen Admin fragen.
Eigentlich ist es kein Regelverstoß, soweit ich weiß.

Du solltest den QuellCode hier online stellen, denn hier gibts viele pfiffige Leute ;)
Den einen oder anderen wird es sicher interssieren, und so manch einer hat vllt. noch Tipps für dich.
 
Du solltest darauf achten, wenn Du solche Lösungen verbreitest, das keine Software von anderen Herstellern benutzt wird ohne darauf hinzuweisen, was allerdings schwer sein wird, da Du mindestens den copy Befehl benutzen musst. Wenn dennoch Software benutzt wird, solltest Du den Hersteller um Erlaubniss bitten, das Programm zu integrieren. Unter welchem System läuft denn das ganze, kann man es auch mit laufendem Windows benutzen, so dass auch die Systemdateien kopiert werden?
 
Hi
Ok, also ich benutze ein paar Windows interne Programme (NETUSE, xcopy ...) und das Programm ExecuteEncrypted um den NET USE Befehl zu verschlüsseln. Das Programm sollte sich bei Bedarf jeder selbst runterladen. Hier nun der Quellcode:

@echo Verbinde mit Netzlaufwerk ...
@echo.
@net use Z: \\Festplatte\Freigabe Passwort /user:USER
@ping localhost -n 4 >NUL
@echo Verbunden ...
@echo.
@set Quelle=""
@set Ziel=""
@set log=""
@set Sicherungstest="C:\Dokumente und Einstellungen\All Users\Startmen\Programme\Autostart\Sicherung nicht erfolgreich.log"
@set Backuplog="%windir%\backup.log"
@IF NOT exist %Ziel% md %Ziel% & @echo.
@echo Starte Sicherung am %date% um %time% von %Quelle% nach %Ziel%
@echo Starte Sicherung am %date% um %time% von %Quelle% nach %Ziel% >>%windir%\backup.log
@echo.
@echo Sichere ...
@xcopy %quelle% %ziel% /m /f /y /s /e /c /i /g /h >>%windir%\backup.log
@echo.
@echo Starte Sicherungsberprfung
@start /w windiff.exe -sldx %log% -T %quelle% %ziel%
@for %%F in (%log%) do @set groesse=%%~zF
@echo.
@IF %groesse% geq 100 (IF EXIST %Sicherungstest% (del %Sicherungstest% & echo Sicherung am %date% um %time% war nicht erfolgreich >>%Sicherungstest% & echo Sicherung nicht erfolgreich, siehe Protokoll-Dateien %log% und %Backuplog% & echo Sicherung nicht erfolgreich >>%windir%\backup.log) ELSE (echo Sicherung am %date% um %time% war nicht erfolgreich >>%Sicherungstest% & echo Sicherung nicht erfolgreich, siehe Protokoll-Dateien %log% und %Backuplog% & echo Sicherung nicht erfolgreich >>%windir%\backup.log)) ELSE (echo Sicherung erfolgreich & echo Sicherung erfolgreich >>%windir%\backup.log & IF Exist %Sicherungstest% del %Sicherungstest%)
@echo.>>%Backuplog%
@echo.
@echo Das Programm wird sich in 15 Sekunden selbst beenden und den PC anschlieáend herunterfahren
@ping localhost -n 15 >NUL
@shutdown.exe -s -t 00

Es ist mein erstes Programm, es sind gewiss noch einige Fehler drin, bin also für jede Art von Kritik offen. Bis jetzt funktioniert zwar alles so wie ich es mir vorstelle, aber man findet bestimmt noch Verbesserungen. Was mich persönlich noch stört ist die ewig lange Zeile mit dem IF EXIST. Diese Zeile möchte ich eh noch erklären:
Nachdem das Programm Windiff die einzelnen Dateien abgeglichen hat wird eine Protokoll-Datei geschrieben (%log%) in der reingeschrieben wird, ob und wenn ja, welche Dateien nicht synchronisiert sind. Dabei ändert sich natürlich die Größe der Log-Datei. Falls alle Files synchronisiert sind, ist die Log-Datei am kleinste (so zwischen 100 - 130 Byte). Diesen Wert muss man herausfinden (ändert sich, je nachdem welchen Quell- und Zielordner man angegeben hat). Wenn man ihn hat, gibt man ihn bei der Zeile IF %groesse% geq 100 ein. Statt 100 dann eben die ermittelte Byte-Zahl + 1.
Falls dann nicht alle Dateien synchronisiert werden konnten vergrößert sich die Log-Datei, wodurch ein andere Befehl ausgeführt wird als wenn die Log-Datei unter dem ermittelten Wert liegt.

Ich hoffe, dass das so weit verstanden worden ist. Wie gesagt, das Ganze ist noch in der Beta-Phase und wird daher noch erprobt. Für konstruktive Kritik bin ich immer zu haben.

Danke

Mfg, Heinrich :)

PS: Sorry, dass ich das vergessen hab: Laufende Systemdateien zu sichern habe ich noch nicht probiert, ist mir im Moment an diesem PC auch nicht möglich. An meinem "Test-PC" werde ich das allerdings schnellstmöglich ausprobieren. Kann mir aber gut vorstellen, dass es geht, da Dateien ja nur kopiert und nicht verschoben werden. Wissen tu ich es aber nicht ;)
Kleine Anmerkung noch am Rande: Für den shutdown-Befehl muss man als Admin angemeldet sein. Für eingeschränkte User ist das Programm Runass PC hilfreich, bei dem man für einzelne Programme Admin-Rechte vergeben kann ohne das PW immer neu eingeben zu müssen.
 
Zuletzt bearbeitet: (Ergänzung)
Ob das was Du da Programmiert hast so neu ist, da haben schon andere etwas ähnliches geschrieben.
Sicherung per Batch-Datei

Wer es gerne spartanisch mag, kann auch altbekannte Funktionen nutzen: Xcopy.

Mit der einfachen Befehlszeile

xcopy %Source% %target% /s /c /i /f /h /k /o /x /y

kann man bereits ein Vollbackup machen.

Für %Source% und %Target% muss man zuvor in einer Batch-Datei per SET-Befehlen die Pfade vorgeben, z.B.
Set Source ="c:\Dokumente und Einstellungen\Michael"
Set Target="x:\Backup"
Die Parameter hinter XCopy werden auch durch xcopy /? In der Eingabeaufforderung erläutert.

Die Sicherung per Batch in dieser Form ist nicht sonderlich bequem.

Die Zeitschrift CT hat auf deren Webseiten bereits eine fertige Batchdatei hinterlegt, welche in dem Artikel "BfF, Ausgabe 03/2003" erläutert wurde.
Diese Batch-Datei sichert die in %Quelle% angegebenen Dateien auf %Ziel% und erstellt dort einen Unterordner mit dem aktuellen Datum. Zuletzt wird mit WinDiff verglichen, ob die Dateien auch richtig gesichert wurden (Windiff findet sich z.B. in der Support.cab auf der Windows XP-CD im Ordner Support\Tools).

Achtung: Das Script sichert nur beim ersten Aufruf alle Dateien und danach nur noch inkrementell, d.h. die Veränderungen von Sicherung zu Sicherung. Verantwortlich hierfür ist der Parameter /m in der Xcopy-Befehlszeile, da dieser nur Dateien mit dem Attribut "a" sichert. Wer dies nicht möchte und stattdessen immer ein Vollbackup erzeugen möchte, muss den Parameter löschen.

Quelle
Aber Du hast Dir ja Mühe gegeben, das muss man anerkennen. :daumen:
 
Hi
Jap also sagen wir's mal so: Die Idee stammt von einer anderen Seite, sprich ich hab die Grundlagen von dort. Ist zwar nicht von der CT, sondern von einer anderen Seite, diese ist aber ähnlich. Leider hat das Ganze dann nicht immer richtig funktioniert, also so wie ich mir das vorgestellt hab. Daher hab ich dann jede Befehlszeile selbst geschrieben, natürlich mit dem Vorbild aus dem Internet, jedoch immer weiter verfeinert.
Um ein Backup per Batch-Datei durchführen zu müssen werden sich aber im Grundgerüst die meisten nicht so stark unterscheiden: Der xcopy-Befehl wird immer mit dem ein oder anderen Parameter vorkommen, falls Dateien verglichen werden sollen wird auch Windiff eingesetzt. Die Idee mit den Protokoll-Dateien habe ich z.B. auch von dort, ich schätze aber mal, dass ich nach einigen Tagen auch selbst drauf gekommen wär. Man will ja wissen, ob alles geklappt hat ;)
Aber du hast Recht, die Grundidee stammt aus dem Internet, das streite ich nicht ab ;) . Aber ehrlich gesagt finde ich mein Programm bis jetzt sogar noch ein wenig besser als das von CT (habs mir grad mal angeschaut). ;)
Mühe gegeben hab ich mir schon, aber das heißt ja meistens erstmal gar nichts. Funktionieren soll's ja und das möglichst einfach.

Habe jetzt übrigens noch in meine Batch-Datei mehrere Quell- und Zielordner vorgegeben, die nacheinander synchronisiert und überprüft werden. Die Batch-Datei gibt dann Meldung aus ob und wenn ja, welche Synchronisierung fehlgeschlagen ist und gibt dann in eigenen Protokoll-Dateien einen genauen Überblick über die nicht kopierten Verzeichnisse/Dateien. Wer Interesse hat soll sich melden ;)

Mfg, Heinrich
 
Zurück
Oben