Zeitgesteuerte zippen von Dateien durch batch
Hallo Leute das ist mein erster Beitrag und ich hoffe ihr könnt mir bei meinem Problem helfen!
Für mich stellt sich aktuell folgende Situation:
Ich habe einen SQL Server 2000 der automatisch jeden Abend ein Backup von der Hauptdatenbank erstellt. Dieses legt er ab in den Ordner D:\DB-Backup .
Nun möchte ich ganz gerne das er mir diese Datensicherung auch noch paralell als .zip erstellt.
Ich hab mir das so vorgestellt, das ich eine Batchdatei schreibe und diese in einen WindowsTask hineinstecke sodass er diese zeitgesteuert ausführt.
Über einige Suchmaschinen hab ich mich schon versuch etwas schlauer zu machen aber etwas genauereres gibts bisher leider nicht.
Ich danke euch schonmal für eure Antworten!
Viele Grüße,
Mitscho
Für mich stellt sich aktuell folgende Situation:
Ich habe einen SQL Server 2000 der automatisch jeden Abend ein Backup von der Hauptdatenbank erstellt. Dieses legt er ab in den Ordner D:\DB-Backup .
Nun möchte ich ganz gerne das er mir diese Datensicherung auch noch paralell als .zip erstellt.
Ich hab mir das so vorgestellt, das ich eine Batchdatei schreibe und diese in einen WindowsTask hineinstecke sodass er diese zeitgesteuert ausführt.
Über einige Suchmaschinen hab ich mich schon versuch etwas schlauer zu machen aber etwas genauereres gibts bisher leider nicht.
Ich danke euch schonmal für eure Antworten!
Viele Grüße,
Mitscho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 91153
Url: https://administrator.de/contentid/91153
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Servus,
Tool meiner Wahl ist 7zip
installieren / entpacken und dann
am besten vorher das Datum in eine Variable schreiben
...und jeden Tag ein neues zip anlegen.
Das kannst du natürlich noch verfeinern mit
Tool meiner Wahl ist 7zip
installieren / entpacken und dann
7z.exe a Backup.zip dann den ordner
am besten vorher das Datum in eine Variable schreiben
set "Jahr=%date:~-4%"
set "Monat=%date:~-7,2%"
set "Tag=%date:~-10,2%"
7z.exe a %Jahr%-%Monat%-%Tag%.zip meinordner
...und jeden Tag ein neues zip anlegen.
Das kannst du natürlich noch verfeinern mit
7z.exe a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip meinordner
Kann ich nun irgendwie festlegen das er immer die neuste Datei aus dem Ordner nehmen soll?
Bastla hat da schon mal etwas vorbereitet Wegen dem automatismus werde ich wohl einen Windowstask erstellen - das würde mir gefallen.
Yupp dafür ist es wie geschaffen for /f %%i in ('dir /b /od "d:\backup\*.*"') do @set Neueste=%%i
7zip a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip d:\backup\%Neueste%
7zip a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip d:\backup\%Neueste%
Schau dir halt mal alle Parameter von 7zip.exe mit /? (Dosbox) an - oder die Helpdatei aus dem Ordner vom 7zip.
Servus,
dann nochmal in einem zusammenhängenden Script:
Wenn du wirklich nur diese beiden zeilen genommen hast - ist es logisch - denn die Variablen müssen erstmal gesetzt werden.
Kommentar:
Zeile 1-4 Variablen für das aktuelle Datum
Zeile 6-8 auslesen, welche Datei als letzte in d:backup erzeugt wurde
Zeile 9 Ein Zip mit dem aktuellen Datum erstellen und die letzte Datei dort packen (Achtung - werden vorher "mehrere" Dateien erzeugt - das Script findet immer nur die letzte!!)
Zeile 12 Unterorder Jahr und Monat erstellen und dort die letze Datei in d:backup als zip einlagern.
Ps: Kannst du das bitte in Batch & Shell verschieben?
Danke
TimoBeil
[Edit Biber] "Ps: Kannst du das bitte in Batch & Shell verschieben?"... mach ich mal eben. [/Edit]
dann nochmal in einem zusammenhängenden Script:
Wenn du wirklich nur diese beiden zeilen genommen hast - ist es logisch - denn die Variablen müssen erstmal gesetzt werden.
:datum in Variablen
set "Jahr=%date:~-4%"
set "Monat=%date:~-7,2%"
set "Tag=%date:~-10,2%"
:finde neueste Datei in d:\backup
for /f %%i in ('dir /b /od "d:\backup\*.*"') do set "Neueste=%%i"
echo Die neueste Datei ist %neueste%
:zippen
%programfiles%\7zip\7z.exe a %Jahr%-%Monat%-%Tag%.zip "D:\DB-Backup\%neueste%"
:zippen mit struktur
%programfiles%\7zip\7z.exe a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip "D:\DB-Backup\%neueste%"
Zeile 1-4 Variablen für das aktuelle Datum
Zeile 6-8 auslesen, welche Datei als letzte in d:backup erzeugt wurde
Zeile 9 Ein Zip mit dem aktuellen Datum erstellen und die letzte Datei dort packen (Achtung - werden vorher "mehrere" Dateien erzeugt - das Script findet immer nur die letzte!!)
Zeile 12 Unterorder Jahr und Monat erstellen und dort die letze Datei in d:backup als zip einlagern.
Ps: Kannst du das bitte in Batch & Shell verschieben?
Danke
TimoBeil
[Edit Biber] "Ps: Kannst du das bitte in Batch & Shell verschieben?"... mach ich mal eben. [/Edit]
Hallo mitscho2000 und TimoBeil!
Dürfte ich ergänzend noch anregen, das eine oder andere Anführungszeichen (aber doch möglichst paarweise ) zu verwenden, vor allem in
und dann auch in
Grüße
bastla
Dürfte ich ergänzend noch anregen, das eine oder andere Anführungszeichen (aber doch möglichst paarweise ) zu verwenden, vor allem in
for /f %%i in ('dir /b /od "d:\backup\*.*"') do set "Neueste=%%i"
%programfiles%\7zip\7z.exe a %Jahr%-%Monat%-%Tag%.zip "D:\DB-Backup\%Neueste%"
bastla
Servus,
Bastla hat mit seinem Tipp ""ins schwarze (dosbox) gehauen
geht beim englischen OS besser - und geht weiterhin davon aus, daß 7zip im Unterordner 7zip liegt.
Passe das noch an deine Umgebung an.
Bastla hat mit seinem Tipp ""ins schwarze (dosbox) gehauen
:zippen mit struktur
"%programfiles%"\7zip\7z.exe a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip "D:\DB-Backup\%neueste%"
geht beim englischen OS besser - und geht weiterhin davon aus, daß 7zip im Unterordner 7zip liegt.
Passe das noch an deine Umgebung an.
:zippen mit struktur
"%programfiles%"\7-zip\7z.exe a %Jahr%\%Monat%\%Jahr%-%Monat%-%Tag%.zip "D:\DB-Backup\%neueste%"