Windows Server 2012: Automatisieren des Dumps und der Zip einer MySQL-Datenbank

1392
user1260928

Ich verwende einen Windows Server 2012. Ich muss alle zwei Stunden einen Speicherauszug meiner Datenbank erstellen und die von SQL generierte Datei komprimieren.

Die Zip - Datei muss diese Syntax haben: nameOfFile_date_hour.zip.
Ich benötige keine Minuten- und Sekundenangaben für den Namen der ZIP-Datei.
Gibt es eine Möglichkeit, dies zu tun?

Ich weiß, wie man das mit Linux macht, aber ich kann nicht herausfinden, wie das mit Windows geht.

0

1 Antwort auf die Frage

1
Sethi

Sie können ein PowerShell-Skript schreiben und von Windows Task Scheduler alle zwei Stunden ausführen lassen

Ein schnelles und schmutziges Beispielskript:

# Declare variables $db = "[DB NAME]" $user = "[DB USERNAME]" $pw = "[DB PASSWORD]" $date = (Get-Date).ToString("yyyy-MM-dd_HH.mm.ss") $mysql_backupfile = ".\backup_$date.sql" $zipped_backupfile = "$mysql_backupfile.zip"  # Backup MySql database mysqldump --user=$user --password=$pw --databases $db > $mysql_backupfile  # Compress file using 7zip sz a -tzip $zipped_backupfile $mysql_backupfile  # Remove uncompressed backup file rm -Path $mysql_backupfile 

Ändern Sie den Datenbanknamen, den Benutzernamen und das Kennwort sowie das Datumsformat in das gewünschte Format.

Hinweis: Ich bin nicht ganz sicher, welche Auswirkungen das Einfügen des Benutzernamens und des Passworts direkt in das Skript haben kann. Wenn Ihr Server jedoch sicher ist, bin ich sicher, dass dies in Ordnung ist. Sie können die Berechtigungsnachweise jedoch beliebig laden (z. B. von einer Umgebungsvariablen).

Bearbeiten Sie die Frage im Kommentar:

So löschen Sie ZIP-Dateien, die älter als 3 Tage sind:

Get-ChildItem -Filter '*.zip' | where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } | Remove-Item 
Danke vielmals. Wie lautet das Skript zum Entfernen aller gezippten Dateien, die älter als 3 Tage sind? user1260928 vor 8 Jahren 0
Nur ein One-Liner (zur besseren Lesbarkeit auf 3 aufgeschnitten) in die Antwort eingearbeitet Sethi vor 8 Jahren 0
OK danke. Ich habe diesen Befehl im Internet gefunden: Forfiles -pc: \ Programme \ Mysql \ Backup \ -s -m * .zip -d -2 -c "cmd / c del @path". Ist es auch gut Gibt es einen besseren als den anderen? user1260928 vor 8 Jahren 0