Вы можете написать сценарий PowerShell и запускать планировщик задач Windows каждые 2 часа
Быстрый и грязный пример скрипта:
# 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
Измените имя базы данных, имя пользователя, пароль и формат даты на все, что вам нужно.
Примечание: я не совсем уверен в последствиях безопасности для вставки имени пользователя и пароля непосредственно в сценарий, но если ваш сервер защищен, я уверен, что все будет хорошо. Но вы можете загрузить учетные данные, как вам нравится (например, из переменной среды)
Изменить на вопрос в комментарии:
Чтобы удалить файлы .zip старше 3 дней:
Get-ChildItem -Filter '*.zip' |
where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item