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

Просмотров: 229Комментарии: 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 big surprise

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

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

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

И пишем туда:

mysqldump -uUSER -pPASSWORD BASE_NAME -r PATH_TO_FILE

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

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

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

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

Значит в системных переменных не добавлен путь до папки куда установлен 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"

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

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

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

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

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

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

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

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


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

     

  

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