Tägliche Vollsicherung per Batch mit Datum im Zielordner
Es geht in 1. Linie darum wie man einen Ordner samt aktuellen Datum erstellt um. Hier im Beispiel geht es um die tägliche Sicherung von z.b. Lexware/Sybase Server.
zu Source.:
Hier legt Ihr das Quellverzeichnis fest woher die Daten kommen
zu Dest:
Hier wird das Ziel Verzeichnis festgelegt
zu if not exist:
hier wird geprüft ob das Datum bzw das Verzeichniss mit dem Datum schon vorhanden ist wenn nicht wird es erstellt
zu net stop:
Wird der Sybase Server von Lexware gestopt.
Xcopy vs. Robocopy
das ganze wäre auch mit Robocopy möglich .
und da es immer wieder Datenjunkies gibt, noch der script dazu wie ihr die täglichen Backups in Monatesordner verschiebt und den Aktuellen "Sicherungsordner" löschen könnt:
Was leider nicht Funktioniert bzw. noch keine Lösung vorhanden ist. Monat 12 ( Dezember) ,da das Script im neuen Jahr erst läuft wird der Ordner als Dezember_2010 gekennzeichnet.
@ECHO OFF
REM Setze Verzeichnisse
SET SOURCE=D:\Datendisk\LEXWARE\Datenbank
SET DEST=D:\Datendisk\lexware-datenbank-backup
REM Erstelle Zielpfad, falls nicht vorhanden
if not exist %Dest%\%Date% Md %DEST%\%Date%
REM Stop DB Server
net stop ASANYS_LXDBSRV
REM Kopiere Verzeichnis
xcopy %SOURCE% %DEST%\%Date% /c/s/r/d/y/i
REM Kopiere Daten von S2 nach S1
robocopy "%DEST%" z: /mir
REM
REM Starte DB Server
net start ASANYS_LXDBSRV
zu Source.:
Hier legt Ihr das Quellverzeichnis fest woher die Daten kommen
zu Dest:
Hier wird das Ziel Verzeichnis festgelegt
zu if not exist:
hier wird geprüft ob das Datum bzw das Verzeichniss mit dem Datum schon vorhanden ist wenn nicht wird es erstellt
zu net stop:
Wird der Sybase Server von Lexware gestopt.
Xcopy vs. Robocopy
das ganze wäre auch mit Robocopy möglich .
und da es immer wieder Datenjunkies gibt, noch der script dazu wie ihr die täglichen Backups in Monatesordner verschiebt und den Aktuellen "Sicherungsordner" löschen könnt:
set jahr=%date:~-4%
set monat=%date:~-7,2%
if %monat%==01 set month=Dezember
if %monat%==02 set month=Januar
if %monat%==03 set month=Februar
if %monat%==04 set month=Maerz
if %monat%==05 set month=April
if %monat%==06 set month=Mai
if %monat%==07 set month=Juni
if %monat%==08 set month=Juli
if %monat%==09 set month=August
if %monat%==10 set month=September
if %monat%==11 set month=Oktober
if %monat%==12 set month=November
mkdir D:\LX-Monatsbackups\%month%_%jahr%
xcopy D:\Datendisk\lexware-datenbank-backup\*.* D:\LX-Monatsbackups\%month%_%jahr%\ /c/d/e/h/r/o/y
rd /s /q D:\Datendisk\lexware-datenbank-backup\
md D:\Datendisk\lexware-datenbank-backup
rd /s /q Z:\lexware-datenbank-backup\
md Z:\lexware-datenbank-backup
Was leider nicht Funktioniert bzw. noch keine Lösung vorhanden ist. Monat 12 ( Dezember) ,da das Script im neuen Jahr erst läuft wird der Ordner als Dezember_2010 gekennzeichnet.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140183
Url: https://administrator.de/tutorial/taegliche-vollsicherung-per-batch-mit-datum-im-zielordner-140183.html
Ausgedruckt am: 22.12.2024 um 19:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo education!
erledigen lassen ...
Mit der Benennung %month%_%jahr% (abgesehen von der denglischen Variablennamen-Kombination, die mir gelegentlich auch passiert ) wäre ich allerdings (besonders in dieser Reihenfolge) nicht wirklich happy (lässt sich nicht vernünftig sortieren).
Noch eine Anmerkung zu den Zeilen 5 und 6 des ersten Scripts: Schaut zwar so nach mehr aus, aber: Wenn Du sie einfach weglässt wird's keiner merken ...
Grüße
bastla
Was leider nicht Funktioniert bzw. noch keine Lösung vorhanden ist. Monat 12 ( Dezember) ,da das Script im neuen Jahr erst läuft wird der Ordner als Dezember_2010 gekennzeichnet.
Sollte sich doch durchif %monat%==01 (set month=Dezember & set /a jahr-=1)
Mit der Benennung %month%_%jahr% (abgesehen von der denglischen Variablennamen-Kombination, die mir gelegentlich auch passiert ) wäre ich allerdings (besonders in dieser Reihenfolge) nicht wirklich happy (lässt sich nicht vernünftig sortieren).
Noch eine Anmerkung zu den Zeilen 5 und 6 des ersten Scripts: Schaut zwar so nach mehr aus, aber: Wenn Du sie einfach weglässt wird's keiner merken ...
Grüße
bastla
Moin education,
die Sicherung des Dezembers des Vorjahres im Januar sollte sich durch eine Erweiterung der Skriptzeile 03 "IF %monat%==01 ..." berücksichtigen lassen.
Grüße
Biber
P.S. es würde mich wahnsinnig machen, in einem Schnipsel zeitgleich zwei Variablen namens %month% und %jahr% im Auge zu behalten.
Wahlweise %monat% und %jahr% oder aber %month% und %year% würden bei mir weniger Tippfehler provozieren.
[edit] @bastla *lautlach* Wollen wir doch im Zirkus auftreten? [/edit]
die Sicherung des Dezembers des Vorjahres im Januar sollte sich durch eine Erweiterung der Skriptzeile 03 "IF %monat%==01 ..." berücksichtigen lassen.
....
if %monat%==01 set "month=Dezember" && Set /a "jahr-=1"
...
Grüße
Biber
P.S. es würde mich wahnsinnig machen, in einem Schnipsel zeitgleich zwei Variablen namens %month% und %jahr% im Auge zu behalten.
Wahlweise %monat% und %jahr% oder aber %month% und %year% würden bei mir weniger Tippfehler provozieren.
[edit] @bastla *lautlach* Wollen wir doch im Zirkus auftreten? [/edit]
hi,
also mit der Vollsicherung hab ich mich auch die letzten Tage beschäftigt und ich bin zu diesem Code gekommen (mit Hilfe von Biber und Bastla =D)
@echo off
cls
cd\
set Quelle=0
set Ziel=0
echo Bitte geben Sie den Quellpfad an:
echo.
set /p Quelle=
echo.
echo Bitte geben Sie den Zielpfad für das Backup an:
echo.
set /p Ziel=
echo.
set Zielunterverz=%date:~6%-%date:~3,2%-%date:~0,2%
set Ordner=%date:~6%-??-??
set Anzahl=5
xcopy "%Quelle%" "%Ziel%%Zielunterverz%" /s /c /i /h /k /o /x /y
pause
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /ad /o-n "%Ziel%%Ordner%"') do rd /s /q "%Ziel%%%i"
echo. Am %Zielunterverz% wurde erfolgreich gesichert. >> "%Ziel%\Backupsicherungen.log"
echo. >> "%Ziel%\Backupsicherungen.log"
echo.:::::::::::::::::::::::::::::::::::::::::: >> "%ziel%\Backupsicherungen.log"
echo. >> "%Ziel%\Backupsicherungen.log"
pause
In diesem Fall hab ich es noch so gemacht, dass der User, den Quell- und den Zielpfad selbst bestimmen kann....
Und zum Schluss wird noch was in ein Logfile geschrieben.
LG
Batchliebhaber
also mit der Vollsicherung hab ich mich auch die letzten Tage beschäftigt und ich bin zu diesem Code gekommen (mit Hilfe von Biber und Bastla =D)
@echo off
cls
cd\
set Quelle=0
set Ziel=0
echo Bitte geben Sie den Quellpfad an:
echo.
set /p Quelle=
echo.
echo Bitte geben Sie den Zielpfad für das Backup an:
echo.
set /p Ziel=
echo.
set Zielunterverz=%date:~6%-%date:~3,2%-%date:~0,2%
set Ordner=%date:~6%-??-??
set Anzahl=5
xcopy "%Quelle%" "%Ziel%%Zielunterverz%" /s /c /i /h /k /o /x /y
pause
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /ad /o-n "%Ziel%%Ordner%"') do rd /s /q "%Ziel%%%i"
echo. Am %Zielunterverz% wurde erfolgreich gesichert. >> "%Ziel%\Backupsicherungen.log"
echo. >> "%Ziel%\Backupsicherungen.log"
echo.:::::::::::::::::::::::::::::::::::::::::: >> "%ziel%\Backupsicherungen.log"
echo. >> "%Ziel%\Backupsicherungen.log"
pause
In diesem Fall hab ich es noch so gemacht, dass der User, den Quell- und den Zielpfad selbst bestimmen kann....
Und zum Schluss wird noch was in ein Logfile geschrieben.
LG
Batchliebhaber
In den Beispiel wird die Sicherung einer Lexware Pro Datenbank beschrieben. Ich halte es jedoch für gefährlich die Datenbank zu stoppen, ohne zu wissen, ob nicht doch noch ein Benutzer das Programm offen hat oder vergessen hat Lexware zu beenden. Wenn dann die Datenbank unter den Füßen weggezogen wird, kann das ernste Konsequenzen haben. Es gibt für die Sicherung von Lexware Pro (und Premium) Tools (z.B. BackupLX Pro), die die Datenbank im laufenden Betrieb konsistent und transaktionssicher sichern können.
Grüße
Andreas
Grüße
Andreas