Бэкап MySQL базы данных с помощью PowerShell

Просмотров: 633Комментарии: 0
Резервное копированиеАвтоматизация

Бэкап MySQL базы данных c помощью "PowerShell"

На всякий случай нужно сделать резервную копию моего сайта.

Вдруг я стану популярным, меня взломают, и нагадят и всё испортят.

В статье используются программы:

GreenShot v1.2.10.6 Программа для создания скриншотов оф. сайт
AkelPad v4.9.8 Текстовый редактор оф. сайт

Для резервного копирования будем использовать поставляемую в комплекте с "MySQL" программу для экспорта "mysqldump.exe"

Вроде ничего сложного, читаем документацию.

A dump made using PowerShell on Windows with output redirection creates a file that has UTF-16 encoding:

Созданный бэкап параршелом, зверски, перекодирует файл в кодировку UTF-16 :bug:

На помощь приходит ключ "--result-file" но проще использовать его аналог "-r" Так скрипт будет выглядеть более запутано

Линуксятники так любят делать -r -ty -ewr -y -e... птьфу :blank:

Короче, создаём файл "блаблабла.ps1" сохраняем его в кодировке UTF-8 (без BOM)

И пишем туда:

mysqldump -uUSER -pPASSWORD  BASE_NAME -r PATH_TO_FILE

Не забываем про запрет на запуск скриптов.

Как-то смотреться не солидно такой скрипт... нужно больше угара. Сделаем бэкапы каждый день, и будем удалять не актуальные бэкапы.

Вначале проверим, работает ли то, что уже сделано. Конечно работает :)

А у меня не работает :(

Значит в системных переменных не добавлен путь до папки куда установлен MySQL. Читай тут.

Cделаем вот такой скрипт:

# -------------------------
# Для резервного копирования mysql баз данных
# 
# © (:Pro:) 28.11.2017
# --------------------------
#
#сегодня
$today=get-date -format d
#неделю назад
$yesterday=(get-date (get-date).addDays(-6) -format d)
#имя базы данных (в кавычках)
$basename="imyabasy"
#символ разделения (в кавычках)
$symbol="_"
mysqldump -uUSERNAME -pPASSWORD $basename -r "D:\backup\MySQL\$basename$symbol$today.sql"
Remove-Item "D:\backup\MySQL\$basename$symbol$yesterday.sql" -Recurse -force

В результате мы получим файл вот с такими именем и расширением: "imyabasy_27.11.2017.sql"

Кавычки в путях нужны на случай если в пути будет пробел.

По началу скрипт будет ругаться, что не найден файл... старый файл бэкапа - который он пытается удалить, ну так его и нет :) он появиться через неделю.

Создаём в планировщике задание, которое будет запускаться от имени "СИСТЕМА"

2017-11-28-13_24_26-parametry-bezopasnosti.png

и в качестве действия выбираем запуск "powershell.exe" и в параметрах указываем путь к скрипту.

2017-11-28-13_24_14-izmenenie-dejstvija.png

Оставьте комментарий!

smile biggrin LOL rofl2 wink rolleyes2 acute aggressive bad blume1 blush bomb boredom bye clapping congratulate cool cray dance2 diablo drinks empathy flag_of_truce fool fool3 good good2 greeting help hi hmm i_am_so_happy mad mocking morning1 music nea new_russian nyam2 ok pardon playboy pleasantry sad scare scratch_one-s_head secret shok sorry stop timeout yahoo shyesok crazy dash1.gif dash2.gif gamer.gif hang1.gif ireful.gif mail1.gif mamba.gif sarcastic.gif wacko1.gif wacko2.gif wacko3.gif


Комментарий будет опубликован после проверки

     

  

(обязательно)

Внимание! На сайте есть мат! Продолжая просмотр вы подтверждаете, что Вам исполнилось 18 лет.