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.

usuario1260928
fuente

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
Sethi
fuente
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