admin.txt

… заметки IT’шника…

Бэкап баз удаленного MySQL сервера из windows.

windowspowershellРешил завести новую рубрику и тэги для коллекционирования своих и чужих скриптов. Заодно будет полезно услышать мнения, советы и критику других людей. Я не считаю себя «великим» скриптописателям, но начальный опыт есть и надо развиваться дальше в этом направлении….

Писать можно много на чем. Популярный перл, новомодный повершелл, старый добрый скриптинг из коммандой строки виндоус (бат файлы) или баш-скриптинг. В данном случае я написал простейший скрипт в виде BAT файла.

Суть поставленной задачи звучала так: организовать бэкап удаленной базы данных MySQL (установленной на линухе). Бэкапить надо было на виндовой тачке и там же хранить бэкапы. Хранить надо было три последних копии.

Пришлось немного погуглить и потом я приступил к написанию первого скрипта.

  • Для выполнения дампа я использовал утилиту идущую в комплекте с MySQL сервером, но я не устанавливал сам сервер, апросто скопировал mysqldump.exe c другого (виндового) сервера. Синтаксис комманды аналогичен таковому в линуксе, и учитывая кучу инфы в сети по этому поводу, приводить его тут не стану.
  • После выполнения дампа баз данных, я проводил сжатие дампа и ротацию файлов. Ротацию делал так: после создания дампа я удалял старый файл, средний файл переименовывал в старый, а новый файл переименовывал в средний. Далее сжимал дамп, давая ему имя нового файла. Для осуществления сжатия, в папку скрипта скопировал rar.exe (из папки с установленным WinRAR). Хелп у этой консольной версии довольно подробный и понятный.
  • По завершению ротации файлов отправляется почтовое уведомление. Для этого юзал утилиту mailsend.exe (бесплатный OpenSource), которая позволяет отплавлять почту используя SMTP сервер не требующий авторизации. Для расширения информации о ходе бэкапов я аттачил к каждому письму список текущих архивов, полученный коммандой dir.

Собственно все, сам скрипт представлен ниже. В дальнейшем надо будет приделать к нему проверку валидности создания дампа и архивово, и уже потом мылить «осознанное» сообщение.
@echo off
echo deleting old files in dump directory
cd dumps
del /q *.*
cd ..
@echo old files deleted.... start dumping DB %time%, wait please...
mysqldump -h 192.168.4.44 -u backupuser --password="TopSecreT" --opt --all-databases > dumps\Server_mysql_(%DATE%).sql
@echo All MySQL databases dumped ... (%time%)
@echo dumps.rar rotaton...
rem pause
del dumps_old.rar
ren dumps.rar dumps_old.rar
ren dumps_new.rar dumps.rar
@echo rotation of archives ended... ready for archivation new files...
rem pause
rar a -r -ac -ao dumps_new dumps\*
@echo Archive created...
rem pause
@echo Mailing to backup operator
dir *.rar /-C /O-D > rarlist.txt
mailsend -f Backup_MySQL_on_
Server-4 -d firma.com -smtp mail-1 -t backup.operators@firma.com -sub "MySQL DB on Lin-4 dumped..." +cc +bc -m rarlist.txt,text/plain,i

Сам скрипт настолько прост, что не нуждается в комментах. Необходимо только учесть возможные «глюки»  с форматированием на блоге, при копировании текста скрипта.

Реклама

Апрель 22, 2009 - Posted by | Databases, MySQL, Windows | ,

3 комментария »

  1. ЖЖошь Дед.
    Если не придираться то круто.
    Если придираться то
    1 Оставлять в скриптах пассы юзеров несекурно.
    2 Нафига ездить на запорожце када есть мерседесы типа
    акрониса , симантека и других продуктов.

    комментарий от woody | Апрель 25, 2009

  2. Зачем применять «мерседесы», для одной простейшей задачи. Это же надо поставить мерседес и разобраться\потестить. А бэкап базы MySQL с использованием консольной утилиты mysqldump является общепринятой практикой. К тому же этот набор (скрипт плюс утилиты) не нуждается в инсталляции и может быть легко перенесен на другой комп, в том числе с малейшими изменениями его можно реализовать под линухой.
    А что касается открыто-хранящегося пароля, то это конечно надо заинвестигать. Хотя доступ к этому скрипту имеет ограниченное число людей, а базе этому юзеру выделено только право делать дампы))). Так что не все так плохо.

    ЗЫ
    ну а на «мерседесы» для бэкапа надо глянуть конечно… хоть я и не люблю их, но можно стянуть неплохую идею.

    комментарий от Ded_mazday | Апрель 27, 2009

  3. Дед ты Молочина.
    Ты вдохновил меня. Прочитал скрипт. Все понял.
    И ещо понял что со мной не все потеряно.
    Скрип взял себе.
    Спасибо за труды.

    комментарий от WithardII | Сентябрь 9, 2015


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: