Dateien packen und verschieben
Hallo @,
ich habe folgendes Problem und bin leider kein großer Skript Schreiber.
Vielleicht kann mir jemand bei dem Problem helfen.
Ich möchte folgendes via Skript (batch oder PS) ausführen lassen:
Das Quellverzeichnis beinhaltet mehrer Unterordner (je Datenbank) mit SQL Backupdateien, diese sollen auf ein Netzlaufwerk in der gleichen Struktur verschoben werden.
Die Dateien in den Unterordnern sollen dabei einzeln gepackt werden (7zip) und der Dateiname jeder Datei soll erhalten bleiben. (Damit man gezielt bei Problemen die richtige Datei raussuchen kann.)
Beispiel:
Quelle: SQL-Server\DB_Backup\Anwendung1\backup20210702_1030.bak Ziel: \\NAS\DB_Backup\Anwendung1\backup20210702_1030.7z
Quelle: SQL-Server\DB_Backup\Anwendung2\backup20210702_0930.bak Ziel: \\NAS\DB_Backup\Anwendung1\backup20210702_0930.7z
Hat da vielleicht jemand schon was passendes rumliegen oder zaubert kurz ein Skript für mich?
Vielen Dank.
Steve
ich habe folgendes Problem und bin leider kein großer Skript Schreiber.
Vielleicht kann mir jemand bei dem Problem helfen.
Ich möchte folgendes via Skript (batch oder PS) ausführen lassen:
Das Quellverzeichnis beinhaltet mehrer Unterordner (je Datenbank) mit SQL Backupdateien, diese sollen auf ein Netzlaufwerk in der gleichen Struktur verschoben werden.
Die Dateien in den Unterordnern sollen dabei einzeln gepackt werden (7zip) und der Dateiname jeder Datei soll erhalten bleiben. (Damit man gezielt bei Problemen die richtige Datei raussuchen kann.)
Beispiel:
Quelle: SQL-Server\DB_Backup\Anwendung1\backup20210702_1030.bak Ziel: \\NAS\DB_Backup\Anwendung1\backup20210702_1030.7z
Quelle: SQL-Server\DB_Backup\Anwendung2\backup20210702_0930.bak Ziel: \\NAS\DB_Backup\Anwendung1\backup20210702_0930.7z
Hat da vielleicht jemand schon was passendes rumliegen oder zaubert kurz ein Skript für mich?
Vielen Dank.
Steve
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 881876396
Url: https://administrator.de/contentid/881876396
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
4 Kommentare
Neuester Kommentar
Die Dateien der SQL Datenbanken sind immer offen. Ich würde sie nicht mit einem Script weg kopieren, sondern mit einem Backup Programm, das die Log Files vorher purged. Veeam Community Edition ist kostenlos. Dort stellt man dann "Application Aware Processing ein", dann wird die Datenbank auch "healthy" gesichert.
@echo off
set "sevenzip=D:\Tools\7z.exe"
set "source=D:\SQL-Server\DB_Backup"
set "target=\\NAS\DB_Backup"
for /f "delims=" %%a in ('dir /b /s /a-d "%source%\*.bak"') do (
if not exist "%target%%%~pa" md "%target%%%~pa" >nul
"%sevenzip%" a "%target%%%~pna.7z" "%%a"
)
Moin,
und wenn es aus dem Hause "Powershell" sein darf:
HINWEIS:
die *.bak-Dateien dürfen nicht größer als 2GB sein, ansonsten 7zip nehmen
Gruß
em-pie
und wenn es aus dem Hause "Powershell" sein darf:
$src = "c:\test\*.bak"
$dst = "C:\test\zip"
$7z = "C:\Program Files\7-Zip\7z.exe"
## Mit CmdLet und der 2GB Grenze
Get-ChildItem -Path $src | ForEach-Object {Compress-Archive -Path $_.FullName -DestinationPath $dst"\"$($_.BaseName)".zip" -CompressionLevel Optimal}
## Mit 7zip ohne Limit und höchster Kompressionsstufe
Get-ChildItem -Path $src | ForEach-Object {& $7z a "-mx=9" $dst"\"$($_.BaseName)".7z" $_.FullName}
HINWEIS:
die *.bak-Dateien dürfen nicht größer als 2GB sein, ansonsten 7zip nehmen
The Compress-Archive cmdlet uses the Microsoft .NET API System.IO.Compression.ZipArchive to compress files. The maximum file size is 2 GB because there's a limitation of the underlying API.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...Gruß
em-pie