Windows Server 2012: cómo automatizar el volcado y la compresión de una base de datos MySQL


0

Estoy usando un Windows Server 2012. Necesito realizar un volcado de mi base de datos cada dos horas y comprimir el archivo generado por SQL.

El archivo zip debe tener la siguiente sintaxis: nameOfFile_date_hour.zip.
No necesito los minutos y los segundos detalles para el nombre del archivo zip.
¿Hay una manera de hacerlo?

Sé cómo hacerlo con Linux, pero no puedo entender cómo hacerlo con Windows.

Respuestas:


1

Puede escribir un script de PowerShell y hacer que el Programador de tareas de Windows lo ejecute cada 2 horas

Un script de ejemplo rápido y sucio:

# 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

Cambie el nombre de la base de datos, el nombre de usuario y la contraseña y el formato de fecha a lo que necesite.

Nota: no estoy completamente seguro de las implicaciones de seguridad de insertar el nombre de usuario y la contraseña directamente en el script, pero si su servidor es seguro, estoy seguro de que estará bien. Pero puede cargar las credenciales como desee (por ejemplo, desde una variable de entorno)

Editar para la pregunta en el comentario:

Para eliminar archivos '.zip' de más de 3 días:

Get-ChildItem -Filter '*.zip' |
    where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
    Remove-Item

Muchas gracias. ¿Cuál sería el script para eliminar cada archivo comprimido anterior a 3 días?
user1260928

Solo un trazador de líneas (dividido en 3 para facilitar la lectura) editado en la respuesta
Sethi

Vale gracias. Encontré este comando en internet: forfiles -pc: \ Programs \ Mysql \ Backup \ -s -m * .zip -d -2 -c "cmd / c del @path". ¿También es bueno? ¿Hay uno mejor que el otro?
user1260928
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.