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