Windows Server 2012: как автоматизировать дамп и zip-архив базы данных MySQL

1343
user1260928

Я использую Windows Server 2012. Мне нужно каждые два часа выполнять дамп базы данных и архивировать сгенерированный SQL-файл.

Почтовый файл должен иметь следующий синтаксис: nameOfFile_date_hour.zip.
Мне не нужны минуты и вторые детали для имени файла почтового индекса.
Есть способ сделать это?

Я знаю, как сделать это с Linux, но не могу понять, как это сделать с Windows.

0

1 ответ на вопрос

1
Sethi

You can write a PowerShell script and have Windows Task Scheduler run it every 2 hours

A quick and dirty example script:

# 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 

Change the database name, username and password and date format to whatever you need.

Note: I'm not entirely sure of the security implications of inserting the username and password directly into the script but if your server is secure I'm sure it'll be fine. But you can load the credentials however you like (e.g. from an environment variable)

Edit for question in comment:

To delete '.zip' files older than 3 days:

Get-ChildItem -Filter '*.zip' | where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } | Remove-Item 
Большое спасибо. Какой будет скрипт для удаления каждого заархивированного файла старше 3 дней? user1260928 8 лет назад 0
Только один вкладыш (разделенный на 3 для удобочитаемости), отредактированный в ответ Sethi 8 лет назад 0
хорошо спасибо. Я нашел эту команду в Интернете: forfiles -pc: \ Programs \ Mysql \ Backup \ -s -m * .zip -d -2 -c "cmd / c del @path". Это тоже хорошо? Есть ли один лучше, чем другой? user1260928 8 лет назад 0

Похожие вопросы