Открытый бета-тест плагина "Backup"

Здравствуйте уважаемые хабровчане LSовцы.
Представляю Вашему вниманию плагин для резервного копирования\сохранения сайта на LiveStreet.
Его можно найти здесь https://github.com/1099511627776/lsbackup

Для чего он был сделан?

Ну если чесно то не нашел бесплатных аналогов(не спорю, может не очень тщательно искал). Единственный плагин который я нашел делал резервные копии БД но не всего сайта.
Его функциональность на данном этапе:
  • Сохранение в архив всего сайта (ZIP-архив)
  • Фильтрация по шаблонам (в данный момент исключаются директории compiled, cache, tmp, log)

Что планируется:
  • Бекап базы БД
  • Нормальный пользовательский интерфейс
  • Создание стартового скрипта, который бы облегчил «поднятие» сайта из резервной копии с нуля

Порядок работы после установки:
  1. Жмем backup — идет подготовка файлов (создание списка)
  2. Жмем Next — идет сохранение файлов в архив

Пока что все. Любая помощь сообщества приветствуется
UPD 10.08.2012
  • Добавлена генерация sql дампа
  • Немножко переработан и локализирован интерфейс
UPD 12.08.2012
  • отправка бекапа по FTP протоколу — альфа

26 комментариев

avatar
Нужная вещь.
Как на счет сохранения файла архива на удаленный ftp сервер?
avatar
Я только ЗА. Если есть возможность, добавбте issue в github
avatar
done
avatar
Жмем backup — идет подготовка файлов (создание списка)
Жмем Next — идет сохранение файлов в архив
— а где это все находится?
avatar
Когда активируется плагин появляется пункт «Настройка», вот там оно и находится
avatar
Fatal error: Uncaught exception 'UnexpectedValueException' with message 'RecursiveDirectoryIterator::__construct(/ linuxnotes.net): failed to open dir: Отказано в доступе' in / linuxnotes.net/plugins/backup/classes/modules/backup/Backup.class.php:44 Stack trace: #0 / linuxnotes.net/plugins/backup/classes/modules/backup/Backup.class.php(44): RecursiveDirectoryIterator->__construct('/kamato...') #1 [internal function]: PluginBackup_ModuleBackup->fillDirectoryStructure() #2 / linuxnotes.net/engine/classes/Engine.class.php(551): call_user_func_array(Array, Array) #3 / linuxnotes.net/engine/classes/Action.class.php(363): Engine->_CallModule('PluginBackup_Ba...', Array) #4 / linuxnotes.net/plugins/backup/classes/actions/ActionAdmin.class.php(33): Action->__call('PluginBackup_Ba...', Array) #5 / linuxnotes.net/plugins/backup/c in / linuxnotes.net/plugins/backup/classes/modules/backup/Backup.class.php on line 44
avatar
Спасибо за ответ, буду разбираться, можете полный stack trace кинуть сюда
avatar
Походу у Вас не все права на директории розданы.
Плагин выполнается от имени запустившего php (т.е. в большинстве стучаев — www). соответственно, где-то не дан доступ к директории.
avatar
На какие папки ему требуется права?
На plugins и собственно самом плагине стоит 777, но результат тот же.
avatar
Оно бекапит все начиная от $_SERVER['DOCUMENT_ROOT'] соответственно начиная с самого корня ему надо дать права на чтение.
И если можно — киньте config.php сюда
avatar
Отличные новости!
Как на счет сохранения файла архива на популярные облачные хостинги dropbox/gdrive/ya.disk/skydrive ???
avatar
selectel.ru/services/cloud-storage/
3р — 1гб
доступ о ftp есть.
avatar
Issue в github и будем думать
avatar
как поведет себя плагин при базе в 400 мб и директории uploads в 7 гб, например?
avatar
Вот это я и сам хотел бы узнать.
avatar
Сейчас работаю над Дапом БД, думаю 400М — он нормально выдвержит, меня больше интересует архив файлов
avatar
Все оборвется из-за max_execution_time
Как вариант, использовать ini_set.
avatar
Вы пробовали этот плагин?
Спрашиваю потому что там какраз все вертится на том, что файлы бертся порциями по 100 штук ы добавляются в архив тоже порциями по 100штук. Так же и таблицы дамб (свежая версия на гитхабе) по 10штук за раз через ajax с выводом статистики
avatar
Нет, не пробовал.
То, что берется порциями — это замечательно. Но сомневаюсь, что сжатие 100 файлов уложится в max_execution_time раный 60 секундам, если попадется хотя бы пару файлов из аплоадсов по несколько ГБ.
avatar
Вот это мне и хотелось бы проверить, но пока негде, любой из доступных мне сайтов (да же не ЛС) не содержить файлов больше 100Мб хотя весь массив данных достигает 30Гб
avatar
Только что обпробовал на 2-х файлах по 1Гб каждый. Создал их через
dd if=/dev/zero of=10g.img bs=1000 count=0 seek=$[1000*1000]
1 файл архивировался 20сек. хотя да, если попадется больше файлов более 1Гб то будет ajax таймаут в 60сек.
avatar
Как вариант, использовать ini_set.
Это обязательно буду использовать, как только смогу найти подходящие исходные данные
avatar
Спасибо за плагин. нужная вещь!
avatar
ТС как продвигаются дела с плагином?
Нужную веЩь вы делаете ;)

думаю не один я ее жду ;)
avatar
когда будет готов, очень нужный плагин, а то я все не как не могу сайт восстановить из резервной копии баззы данных на ЛС
avatar
Плагин щас в стадии активной позней альфы (или ранней беты) :) можете скачать его с github (ссылка в статье).
Сейчас в процессе — разработка утилиты восстановления потому как в данный момент восстановление ручками.
Любые пожелания и тем более патчи приветствуются
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.