Страница 1 из 1

Скрипт автоматического бэкапа файлов БД

Добавлено: 16 окт 2012, 23:36
h8every1
Здравствуйте!

Столкнулся с проблемой, что невозможно установить Open-server в дропбокс или яндекс.диск, в связи с особенностями этих систем. При установке туда, могут возникать ошибки синхронизации или даже пропадать файлы (в я.диске). Но бэкапить БД всё-таки хочется, а файлы лежат в папке самого опен-сервера.

Поэтому я написал скрипт, который автоматически копирует все файлы БД в дропбокс при остановке сервера, а также подчищает за собой старые файлы.

В самом файле можно настроить сколько дней надо хранить копии БД. Ну и вообще, там всё достаточно подробно прокомментировано, так что можете всё поменять под себя.

Этот файл надо положить в папку open-server/userdata.

Файл, в принципе, можно использовать для бэкапа любой папки, не обязательно БД.

Поскольку, .bat-файлы прикладывать к сообщению нельзя, вот ссылка для скачивания: http://ge.tt/7unuUdP?c

Работа проверена под Win 7 x645 Home Premium.

Добавлено: 16 окт 2012, 23:45
Максим
Идея хороша, правда не знаю насколько это безопасно, ведь выполнение файла (и соответственно копирование папки) происходит ДО остановки модулей. Если MySQL сервер в момент копирования будет что-то записывать в базу или служебные файлы, то эти файлы скопируются испорченными.

Добавлено: 17 окт 2012, 13:39
Denis_Pirojkov
При установке туда, могут возникать ошибки синхронизации...
В дропбоксе есть ошибка синхронизации но они устраняются после окончания использования данного файла, в таком случае я держу портабл программы, в том числе гугл хром и мазиллу, так же держу опен сервер, и в принципе нет никаких нареканий.

Добавлено: 17 окт 2012, 19:44
h8every1
Максим писал(а):Если MySQL сервер в момент копирования будет что-то записывать в базу или служебные файлы, то эти файлы скопируются испорченными.
Ну, как вариант можно, конечно, и ручками выполнять файл после полной остановки сервера.
Denis_Pirojkov писал(а):они устраняются после окончания использования данного файла
У меня пару раз возникали проблемы с доступом скриптов к файлам - не могу удалить их с помощью PHP, т.к. они были заняты я.диском. В дропбоксе не стал проверять, честно говоря. Просто увидел, что он тоже зависает в вечной синхронизации во время работы опен-сервера и решил не проверять дальше.

Добавлено: 18 окт 2012, 22:01
h8every1
Максим писал(а):выполнение файла (и соответственно копирование папки) происходит ДО остановки модулей
Проверил сейчас, действительно есть отличия в некоторых файлах. В моём случае, правда, это не отразилось на работе восстановленной БД.

Может быть, есть смысл сделать больше "хуков" для таких bat-файлов? Как в git, например, есть pre-commit и post-commit, так и в open-server можно было бы сделать (как минимум) 4 файла - перед запуском, после запуска, перед остановкой и после остановки сервера.

Добавлено: 18 окт 2012, 23:27
Максим
ok через пол часа сделаю, подождите чуток.

Добавлено спустя 36 минут 9 секунд:
Добавил то, что вам нужно. Перезалил файлы последней версии на сайт. Как нужно называть файлы прочитаете в Руководстве.

Добавлено: 19 окт 2012, 13:06
h8every1
Ок, спасибо! Перезалил скрипт на тот же адрес.

Добавлено: 21 окт 2012, 11:06
Wave
Пишет: файл удалён владельцем.

Добавлено: 22 окт 2012, 19:19
h8every1
Wave писал(а):Пишет: файл удалён владельцем.
упс. поправил ссылку.

Добавлено: 13 ноя 2012, 20:37
h8every1
Изменил файл. Теперь, благодаря шаблонам, папка с исходной БД прописывается автоматически, но путь для бэкапа указывать всё равно надо.