98204
15.04.2011, aktualisiert um 11:16:51 Uhr
11123
10
1
Einfaches Selbst-Backup-Tool
Ich stelle hier ein einfaches Backup-Tool vor, das mit PC-Grundkenntnissen (Batch-Kommandos) einzurichten und zu konfigurieren ist.
Es gibt eine Batchdatei "Backup.bat", aus der heraus weitere Batchdateien gestartet werden, in denen dann bestimmte Bereiche gesichert werden können.
Die Ausgaben werden sowohl auf die Kommandozeilen-Konsole als auch in eine Logdatei geschrieben. Diese Logdatei bekommt den Namen "Backup_<Datum>.log" und steht im Backupverzeichnis, so daß jederzeit nachvollzogen werden kann was wann gesichert worden ist.
Die nachfolgende Beschreibung ist ein einfaches Beispiel und kann beliebig erweitert werden.
Hier der Inhalt der Startdatei Backup.bat:
Erläuterung:
In der Startdatei werden alle notwendigen Umgebungsvariablen gesetzt und die eigentlichen Backup-Batches gestartet.
1. "Einstellung des Backup-Ziels":
Hier wird die Umgebungsvariable "destination" mit dem Laufwerk und/oder einem darunter liegenden Verzeichnis gesetzt.
In diesem Beispiel sind 2 Ziele vorgegeben, wobei eines auskommentiert worden ist. Es kann also je nach Notwendigkeit durch Veränderung der Auskommentierung ein anderes Backup-Ziel eingestellt werden.
2. "Backup-Variable initialisieren":
Hier wird mit der Umgebungsvariablen "backupdir" das Verzeichnis gesetzt, das direkt unterhalb "destination" liegt. Existiert diese Verzeichnis nicht wird es in angelegt.
Die Umgebungsvariable "backuplog" setzt Verzeichnis und Dateiname der Logdatei.
3. "Backup-Logdatei initialisieren":
Hier wird '.' in die Logdatei geschrieben, damit diese überhaupt erst einmal angelegt wird.
4. "Startzeile in Log-Datei und auf Konsole ausgeben":
Hier wird mit den beiden Zeilen die Startzeile "Backup gestartet: <Datum, Uhrzeit>, Ziel: "X:\" sowohl auf die Konsole als auch in die Logdatei geschrieben.
5. "Office-Dateien sichern"
Jetzt sind wir soweit die Batchdateien zu starten, die das eigentliche Backup erzeugen sollen. Das wird weiter unten detailliert erklärt. Es können mehrere solcher Backup-Batches hintereinander in gleicher Weise aufgerufen werden.
6. "Schlusszeile in Log-Datei und auf Konsole ausgeben"
Hier wird auf Konsole und in die Logdatei die Schlusszeile "Daily Backup beendet: <Datum, Uhrzeit>" geschrieben.
Danach wird die Logdatei mit einem Texteditor angezeigt. Auch hier kann man je nach Geschmack auch einen anderen Editor einsetzen.
Zum Schluss werden die Umgebungsvariablen wieder gelöscht und das Tool wartet auf einen Tastenklick.
Beispiel-Backup "Office-Dateien sichern":
Hier wird beispielhaft eine Batchdatei "OfficeBackup.bat" beschriebent, in der Dateien aus dem Office-Bereich gesichert werden.
Diese Batchdatei hat den folgenden Aufbau:
Erläuterung:
Hier werden alle Dateien aus "C:\Eigene Dateien" gesichert.
Mit den 2 echo-Zeilen werden entsprechende Logs in die Konsole und die Logdatei geschrieben. Die Umgebungsvariablen "copyfrom" und "copyto" werden gesetzt mit den Verzeichnissen des zu sichernden Quell- und Zielbereichs.
Mit dem mkdir-Befehl wird das Verzeichnis erzeugt. Sollte es bereits existieren wird die enstprechende Fehlermeldung in die Logdatei geschrieben.
Der xcopy-Befehl ist so gesetzt, daß alles ohne Rückfrage kopiert wird und die Ausgaben auf "nul" umgeleitet werden. Wer die Ausgaben in seiner Logdatei sehen möchte kann statt "nul" auf ">>%backuplog%" umsetzen.
In gleicher Weise können weitere Batchdateien erzeugt werden. Es werden dann lediglich die echo-Zeilen und die Variablen "copyfrom" und "copyto" neu gesetzt. Alles andere kann mit Copy&Paste übernommen werden.
Es gibt eine Batchdatei "Backup.bat", aus der heraus weitere Batchdateien gestartet werden, in denen dann bestimmte Bereiche gesichert werden können.
Die Ausgaben werden sowohl auf die Kommandozeilen-Konsole als auch in eine Logdatei geschrieben. Diese Logdatei bekommt den Namen "Backup_<Datum>.log" und steht im Backupverzeichnis, so daß jederzeit nachvollzogen werden kann was wann gesichert worden ist.
Die nachfolgende Beschreibung ist ein einfaches Beispiel und kann beliebig erweitert werden.
Hier der Inhalt der Startdatei Backup.bat:
@echo off
REM --- Einstellung des Backup-Ziels
REM eigenes Temp-Verzeichnis
rem set destination="C:\Temp\backup"
REM USB-Stick 4GB
set destination="X:\"
REM --- Backup-Variable initialisieren
set backupdir="MyBackup\DailyBackup"
if not exist %destination%%backupdir% mkdir %destination%%backupdir%
set backuplog= "%destination%%backupdir%\Backup_%date%.log"
REM --- Backup-Logdatei initialisieren
echo . > %backuplog% 2>&1
REM --- Startzeile in Log-Datei und auf Konsole ausgeben
echo Backup gestartet: %date% %time%, Ziel: %destination% >>%backuplog%
echo Backup gestartet: %date% %time%, Ziel: %destination%
REM --- Office-Dateien sichern
call OfficeBackup.bat
rem ... weitere Backups in gleicher Weise hinzufügen
REM --- Schlusszeile in Log-Datei und auf Konsole ausgeben
echo Daily Backup beendet: %date% %time% >>%backuplog%
echo Daily Backup beendet: %date% %time%
REM --- Log-Datei anzeigen
start "notepad.exe" %backuplog%
REM --- Variable löschen
set backuplog=
set backupdir=
set destination=
pause
@echo on
Erläuterung:
In der Startdatei werden alle notwendigen Umgebungsvariablen gesetzt und die eigentlichen Backup-Batches gestartet.
1. "Einstellung des Backup-Ziels":
Hier wird die Umgebungsvariable "destination" mit dem Laufwerk und/oder einem darunter liegenden Verzeichnis gesetzt.
In diesem Beispiel sind 2 Ziele vorgegeben, wobei eines auskommentiert worden ist. Es kann also je nach Notwendigkeit durch Veränderung der Auskommentierung ein anderes Backup-Ziel eingestellt werden.
2. "Backup-Variable initialisieren":
Hier wird mit der Umgebungsvariablen "backupdir" das Verzeichnis gesetzt, das direkt unterhalb "destination" liegt. Existiert diese Verzeichnis nicht wird es in angelegt.
Die Umgebungsvariable "backuplog" setzt Verzeichnis und Dateiname der Logdatei.
3. "Backup-Logdatei initialisieren":
Hier wird '.' in die Logdatei geschrieben, damit diese überhaupt erst einmal angelegt wird.
4. "Startzeile in Log-Datei und auf Konsole ausgeben":
Hier wird mit den beiden Zeilen die Startzeile "Backup gestartet: <Datum, Uhrzeit>, Ziel: "X:\" sowohl auf die Konsole als auch in die Logdatei geschrieben.
5. "Office-Dateien sichern"
Jetzt sind wir soweit die Batchdateien zu starten, die das eigentliche Backup erzeugen sollen. Das wird weiter unten detailliert erklärt. Es können mehrere solcher Backup-Batches hintereinander in gleicher Weise aufgerufen werden.
6. "Schlusszeile in Log-Datei und auf Konsole ausgeben"
Hier wird auf Konsole und in die Logdatei die Schlusszeile "Daily Backup beendet: <Datum, Uhrzeit>" geschrieben.
Danach wird die Logdatei mit einem Texteditor angezeigt. Auch hier kann man je nach Geschmack auch einen anderen Editor einsetzen.
Zum Schluss werden die Umgebungsvariablen wieder gelöscht und das Tool wartet auf einen Tastenklick.
Beispiel-Backup "Office-Dateien sichern":
Hier wird beispielhaft eine Batchdatei "OfficeBackup.bat" beschriebent, in der Dateien aus dem Office-Bereich gesichert werden.
Diese Batchdatei hat den folgenden Aufbau:
echo Office (Eigene Dateien)
echo Office (Eigene Dateien) >> %backuplog%
set copyfrom="C:\Eigene Dateien"
set copyto="%destination%\%backupdir%\C\Eigene Dateien"
mkdir %copyfrom% 2>>%backuplog%
xcopy %copyfrom%\*.* %copyto%\*.* /c/s/e/v /Y >nul
rem ... weiter Backups in gleicher Weise hinzufügen
Erläuterung:
Hier werden alle Dateien aus "C:\Eigene Dateien" gesichert.
Mit den 2 echo-Zeilen werden entsprechende Logs in die Konsole und die Logdatei geschrieben. Die Umgebungsvariablen "copyfrom" und "copyto" werden gesetzt mit den Verzeichnissen des zu sichernden Quell- und Zielbereichs.
Mit dem mkdir-Befehl wird das Verzeichnis erzeugt. Sollte es bereits existieren wird die enstprechende Fehlermeldung in die Logdatei geschrieben.
Der xcopy-Befehl ist so gesetzt, daß alles ohne Rückfrage kopiert wird und die Ausgaben auf "nul" umgeleitet werden. Wer die Ausgaben in seiner Logdatei sehen möchte kann statt "nul" auf ">>%backuplog%" umsetzen.
In gleicher Weise können weitere Batchdateien erzeugt werden. Es werden dann lediglich die echo-Zeilen und die Variablen "copyfrom" und "copyto" neu gesetzt. Alles andere kann mit Copy&Paste übernommen werden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164641
Url: https://administrator.de/contentid/164641
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
10 Kommentare
Neuester Kommentar
Salü und danke für die mühe.
Wie gesagt Kleinigkeiten, aber nochmal Danke für die Mühe.
In der letzten Zeit kommen ja immer mehr hochkomplexe Fragen
Grüße
- kannst du das bitte in Tags klemmen?
- evtl. wäre (grade bei USB) eine Abfrage hilfreich:
* ist der Stick überhaupt da?
- und beschreibbar
- pi* Daumen passt das Backup dort auch drauf?
- eine Fehlerabfrage
- Dann schau dir mal ein paar andere Backupper an oder 7z Scripte (die meistens von des Bibers Tut Batch und Datum inspiriert wurden) - das %date%;%Time% ist nicht wirklich hybsch.
Wie gesagt Kleinigkeiten, aber nochmal Danke für die Mühe.
In der letzten Zeit kommen ja immer mehr hochkomplexe Fragen
Grüße
Moin,
die Codeformatierung würde die Lesbarkeit erheblich verbessern.
mkdir ist bei xcopy überflüssig, das erledigt xcopy selbst, wenn man den Zielverzeichnispfad mit .einem Backslash abschließt.
Gruß
die Codeformatierung würde die Lesbarkeit erheblich verbessern.
mkdir ist bei xcopy überflüssig, das erledigt xcopy selbst, wenn man den Zielverzeichnispfad mit .einem Backslash abschließt.
Gruß
Hi,
wenn du auf die "Formatierungshilfe" im Eingabefeld des Beitrags klickst, dann findest du auch die Formatierungen in den Beiträgen
Gruß
wenn du auf die "Formatierungshilfe" im Eingabefeld des Beitrags klickst, dann findest du auch die Formatierungen in den Beiträgen
Gruß
Hi Internetter,
zur Textformatierung: Du must einfach vor Deinem Quellcode <code> und nach Deinem Quellcode ein </code> anfügen (also: .. der Quellcode </code>). Damit wird der Quellcode im Forum richtig angezeigt. Ich habe Deinen Beitrag jetzt aktualisiert. Schaue es Dir einfach mal an, ist ganz einfach.
Gruß
Frank
Webmaster
zur Textformatierung: Du must einfach vor Deinem Quellcode <code> und nach Deinem Quellcode ein </code> anfügen (also: .. der Quellcode </code>). Damit wird der Quellcode im Forum richtig angezeigt. Ich habe Deinen Beitrag jetzt aktualisiert. Schaue es Dir einfach mal an, ist ganz einfach.
Gruß
Frank
Webmaster
@Frank
Hi,
die Idee mit dem doppelten Accent Gravis war aber nicht schlecht, wenn sie denn funktioniert.
Gruß
Hi,
die Idee mit dem doppelten Accent Gravis war aber nicht schlecht, wenn sie denn funktioniert.
Gruß
Salü zusammen,
ich bin ja schon immer ein großer Freund von schmalen kurzen Sachen.
Und da meine "einwände" mittlerweile nichtig geworden sind und Frank ja auch schon an Board war (und hoffentlich den [x] Haken drin hat) -
Schicke ich Frank keine PN, dass er meine beiden Antworten bitte in das große runde werfen soll, sondern schreibs Hier rein, vielleicht findet die Idee ja der eine oder andere auch nicht verkehrt.
und falls mal wirklich Fragen kommen - wirds übersichtlicher wenn unser Geplänkel verschwunden ist.
Ps:
(alles, was blau hinterlegt ist - ist ein Link - also oben die Code Tags waren es auch)
Gruß
ich bin ja schon immer ein großer Freund von schmalen kurzen Sachen.
Und da meine "einwände" mittlerweile nichtig geworden sind und Frank ja auch schon an Board war (und hoffentlich den [x] Haken drin hat) -
Schicke ich Frank keine PN, dass er meine beiden Antworten bitte in das große runde werfen soll, sondern schreibs Hier rein, vielleicht findet die Idee ja der eine oder andere auch nicht verkehrt.
und falls mal wirklich Fragen kommen - wirds übersichtlicher wenn unser Geplänkel verschwunden ist.
Ps:
(alles, was blau hinterlegt ist - ist ein Link - also oben die Code Tags waren es auch)
Gruß