Приветствую друзья.
Обратился ко мне знакомый с просьбой организовать удобное резервное копирование базы, причем чтобы файл закачивался в хранилище Яндекс. После пары часов поиска способа это реализовать, я остановился на Sypex Dumper 2. В итоге немного модифицировал создание архива. Так как я не имею права распространять модифицированное приложение, приведу тут листинг кода, там все довольно просто...
Про сам "дампер" можно почитать на официальном сайте, замечательная штука, можно делать резервную копию как вручную, так и по CRON'у.
Итак, приступим…
1. Зарегистрироваться в сервисе Яндекс.Диск, с этим трудностей не должно возникнуть, в итоге Яндек любезно предоставит вам 8 гб. места в облачном хранилище :)
2. Скачать скрипт Sypex Dumper 2 с оф. сайта.
3. Скачать класс для работы с протоколом webdav (необходим для работы с АПИ Яндекса), можно взять у меня в файлах (пропатченый для работы с Яндекс)
4. Распаковываем Sypex Dumper в корень сайта, думаю название директории sxd лучше все же сменить на всякий случай.
5. Распаковать файл class_webdav_client.php в папку с Sypex Dumper.
6. Открываем файл cfg.php в папке с Sypex Dumper, добавим в него переменные со своим логином и паролем от Яндекс, для этого после строки 'exitURL' => './' ставим запятую, и добавим 'yandex_login' => 'ваш_логин',
'yandex_pass' => 'ваш_пароль'
7. Открываем файл index.php в папке с Sypex Dumper, находим функцию function runBackupJob($continue = false), ниже находим после этих строк вставляем код:
затем после строчки вставляем функцию для удаления файла с бекапом с сайта (это не обязательно, но думаю безопаснее):
Теперь можем проверить работу, для этого зайдите по адресу ваш_сайт/папка_с_Sypex_Dumper введите логин и пароль к базе, выберите нужные таблицы и параметры и нажмите "Выполнить". В результате вы должны получить сообщение что архив создан, а в вашем хранилище на Яндекс должна появиться папка backups с архивом внутри. Также проверте корректность удаления архива из папка_с_Sypex_Dumper/backup
Теперь можно настроить архивацию по крону, о том как это делать написано на оф.сайте Sypex Dumper
P.S.
Хочу отметить, что это всего лишь пример, и я не несу никакой ответственности за работоспособность, или проблеммы вызванные при использовании. Материал распространяется «как есть», вы можете пользоваться этим способом на свой страх и риск.
Обратился ко мне знакомый с просьбой организовать удобное резервное копирование базы, причем чтобы файл закачивался в хранилище Яндекс. После пары часов поиска способа это реализовать, я остановился на Sypex Dumper 2. В итоге немного модифицировал создание архива. Так как я не имею права распространять модифицированное приложение, приведу тут листинг кода, там все довольно просто...
Про сам "дампер" можно почитать на официальном сайте, замечательная штука, можно делать резервную копию как вручную, так и по CRON'у.
Итак, приступим…
1. Зарегистрироваться в сервисе Яндекс.Диск, с этим трудностей не должно возникнуть, в итоге Яндек любезно предоставит вам 8 гб. места в облачном хранилище :)
2. Скачать скрипт Sypex Dumper 2 с оф. сайта.
3. Скачать класс для работы с протоколом webdav (необходим для работы с АПИ Яндекса), можно взять у меня в файлах (пропатченый для работы с Яндекс)
4. Распаковываем Sypex Dumper в корень сайта, думаю название директории sxd лучше все же сменить на всякий случай.
5. Распаковать файл class_webdav_client.php в папку с Sypex Dumper.
6. Открываем файл cfg.php в папке с Sypex Dumper, добавим в него переменные со своим логином и паролем от Яндекс, для этого после строки 'exitURL' => './' ставим запятую, и добавим 'yandex_login' => 'ваш_логин',
'yandex_pass' => 'ваш_пароль'
7. Открываем файл index.php в папке с Sypex Dumper, находим функцию function runBackupJob($continue = false), ниже находим после этих строк вставляем код:
// send to yandex require('class_webdav_client.php'); $wdc = new webdav_client(); $wdc->set_server('ssl://webdav.yandex.ru'); $wdc->set_port(443); $wdc->set_user($this->CFG['yandex_login']); $wdc->set_pass($this->CFG['yandex_pass']); $wdc->set_protocol(1); $wdc->set_debug(false); if (!$wdc->open()) { exit; } if (!$wdc->check_webdav()) { exit; } $http_status = $wdc->mkcol("/backups"); $http_status = $wdc->put_file("/backups/".$this->JOB['file'], $this->CFG['backup_path'].$this->JOB['file']); $wdc->close(); // end send to yandex
Теперь можно настроить архивацию по крону, о том как это делать написано на оф.сайте Sypex Dumper
P.S.
Хочу отметить, что это всего лишь пример, и я не несу никакой ответственности за работоспособность, или проблеммы вызванные при использовании. Материал распространяется «как есть», вы можете пользоваться этим способом на свой страх и риск.
Реклама #
picaboo 11 лет назад #
deltas 11 лет назад #
picaboo 11 лет назад #
есть еще более продвинутая ступень извращений :)
себе я вообще через bash настроил архивирование баз, закрытие паролем и отправку в яндексдиск, дпропбокс и гуглдрайв
eoleg 11 лет назад #
если еще весь сайт периодически туда архивировать то то можно будет избежать ситуации в которую попал тут один человек у которого хостер требовал какую то безумную сумму!
Князь Мышкин 11 лет назад #
Как-то на хабре проходил юзер с рекламой своего сервиса. Он там придумал скрипт, который бэкапил базу и файлы к ним в хранилище раз в день.
Не занес к себе в закладки - теперь жалею
Владимир 11 лет назад #
picaboo 11 лет назад #
когда встанет вопрос при полной потере сайта, что лучше иметь бекап базы данных или картинок загруженных пользователем, то выбор очевиден чем можно пожертвовать
Владимир 11 лет назад #
Azura 11 лет назад #
lezginka.ru 11 лет назад #
deltas 11 лет назад #
Dinar 11 лет назад #
В логе выводит ошибку: