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

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

zip-файл должен иметь следующий синтаксис:nameOfFile_date_hour.zip.


Мне не нужны минуты и вторые детали для имени zip-файла.


Есть ли способ сделать это?

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

20
задан g2mk
13.01.2023 19:23 Количество просмотров материала 3129
Распечатать страницу

1 ответ

вы можете написать сценарий 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

изменить имя базы данных, имя пользователя и пароль и формат даты, что вам нужно.

примечание: Я не совсем уверен в последствиях для безопасности вставки имени пользователя и пароля непосредственно в скрипт, но если ваш сервер безопасен, я уверен, что все будет хорошо. Но вы можете загрузить учетные данные like (например, из переменной окружения)

редактировать вопрос в комментарии:

удалить '.zip-файлы старше 3 дней:

Get-ChildItem -Filter '*.zip' |
    where { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
    Remove-Item
1
отвечен Sethi 2023-01-15 03:11

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх