aleksey_z Posted January 4, 2016 Share #1 Posted January 4, 2016 Всех с Новым Годом и наступающим Рождеством Христовым! Создаю сайт с магазином на Prestashop из Апп-центра на сервере. Подскажите пожалуйста, как смастерить авто-бэкапирование БД? Бэкап всех файлов сайта организован автоматически, средствами моего 1-го сервера (на котором сайт), на 2-ой сервер по любому расписанию, или необходимости. А вот с бэкапом БД пока не разобрался, т.е. делаю экспорт БД сайта в PhPMyAdmin вручную, после бэкапа файлов сайта. А как настроить в PhPMyAdmin автоматическое бэкапирование БД по расписанию (как с файлами сайта)? Чтоб, допустим раз в 2 суток автоматом выполнялся бэкап БД сайта (в свою папку на 2-ом сервере). Спасибо. Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 5, 2016 Share #2 Posted January 5, 2016 Какая база используется? MariaDB? Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 5, 2016 Author Share #3 Posted January 5, 2016 Да. Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 5, 2016 Share #4 Posted January 5, 2016 sqldump ИмяБазы >ИмяБэкапа.sql и через cron или встроенный в интерфейс планировщик запускать. Вернусь домой - напишу точнее. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 5, 2016 Author Share #5 Posted January 5, 2016 Спасибо. Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 5, 2016 Share #6 Posted January 5, 2016 Я так и не доехал до дома. У себя делал по оф. мануалу https://mariadb.com/kb/en/mariadb/mysql ... and-higher Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 5, 2016 Share #7 Posted January 5, 2016 Я нашел куда запилить виртуалочку mysqldump ttrss -u ttrss -p123 > /volume1/1/backup.sql mysqldump ;комманда ttrss ;имя базы -u ttrss ;имя пользователя для доступа к базе. раздельно -p123 ;пароль 123. Обязательно слитно. > /volume1/1/backup.sql ;символ > означает сохранить из базы и дальше путь к файлу. можно написать mysqldump ttrss -u ttrss -p123 < /volume1/1/backup.sql и это восстановит базу из бэкапа. сам скрипт я запускаю через планировщик от root. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 6, 2016 Author Share #8 Posted January 6, 2016 Спасибо, почитал по ссылке, почти понял (я далёк от командной строки), но не понял, как должен называться файл бэкапа. Если БД называется testshop, то так вроде должен называться файл бэкапа testshop.sql ? (если из PHPMyAdmin экспорт - так называется) И за пример спасибо, т.е.: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshop.sql и получаю бэкап нужной БД локально, в указанной папке, по расписанию в планировщике? А есть возможность ложить файл бэкапа по сети, на другой сервер? И вопрос в файле бэкапа - он один и каждый раз будет перезаписан? В идеале хотелось бы получить файл бэкапа БД от даты бэкапа (как в Винде точки восстановления). Ибо сайт делаю по немногу, но каждый день. И если что-то набокапорю, легче поднять с наименьшими потерями. В PHPMyAdmin есть настройка репликации, но моих скудных знаний хватило понять, что на втором сервере будет такая же БД, синхронизируемая с Основной. Но есть ли возможность откатиться к БД нужной даты? С бэкапом файлов сайта тоже погорячился, сейчас буду разбираться. Думал уже есть возможность указать для репликации конкретную папку, а не всю общего доступа. У Qnap есть. Тоже хотелось бы каждый бэкап папки сайта testshop, отдельной папкой. Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 6, 2016 Share #9 Posted January 6, 2016 (edited) Файл бэкапа может называться как угодно. Для добавления даты в имя файла: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql на выходе получится файл: testshopDB_2016-01-06_20_07.sql Второй сервер на какой операционке работает? Файлы проще забирать вторым сервером из папки на первом. Edited January 6, 2016 by Guest Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 6, 2016 Share #10 Posted January 6, 2016 Для архивации файлов сайта проще всего использовать встроенный архиватор tar: tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/* Архиватор tar /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar куда положить и как назвать файл /volume1/web/testshop/* путь к папке с сайтом и * - архивировать все файлы и подпапки Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 6, 2016 Author Share #11 Posted January 6, 2016 (edited) Файл бэкапа может называться как угодно. Для добавления даты в имя файла: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql на выходе получится файл: testshopDB_2016-01-06_20_07.sql Второй сервер на какой операционке работает? Оба сервера одинаковы, в подписи. Файлы проще забирать вторым сервером из папки на первом. Не соображу, как. Ежели забирать вторым сервером по сети, то забирать и файл бэкапа БД, и файлов сайта. Edited January 6, 2016 by Guest Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 6, 2016 Author Share #12 Posted January 6, 2016 Для архивации файлов сайта проще всего использовать встроенный архиватор tar: tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/* Архиватор tar /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar куда положить и как назвать файл /volume1/web/testshop/* путь к папке с сайтом и * - архивировать все файлы и подпапки Т.е. использовать не репликацию/резервирование, а использовать встроенный архиватор tar, и планировщик задач с заданиями, для запуска скриптов по созданию и бэкапа БД, и файлов сайта? И таким образом я получаю желаемый результат бэкапов по установленным в планировщике параметрам/датам? Буду пробовать реализовать. Спасибо. Со Святым вечером и Рождеством Христовым! Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 6, 2016 Share #13 Posted January 6, 2016 Т.е. использовать не репликацию/резервирование, а использовать встроенный архиватор tar, и планировщик задач с заданиями, для запуска скриптов по созданию и бэкапа БД, и файлов сайта?И таким образом я получаю желаемый результат бэкапов по установленным в планировщике параметрам/датам? Буду пробовать реализовать. Репликация это создание идентичных копий. Меняешь на одном сервере - меняется на другом. А тебе нужен бэкап. На первом сервере получается: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/* find /volume1/public/testshopbackup/ -type f -mtime +7 -delete и включить службу FTP сервера На втором сервере. wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.* find /volume1/public/testshopbackup/ -type f -mtime +30 -delete Manpage:wget -P /volume1/testshopbackup_server2/ папка в которую будет качать wget --user=admin --password 123 пользователь и пароль от ftp на первом сервере. обязательно два минуса. -nc пропускать уже скачанные файлы ftp://192.168.1.37/public/testshopbackup/testshop*.* откуда собственно качать файлы. ну и адрес сервера и путь к файлам свои подставить find /volume1/public/testshopbackup/ -type f -mtime +7 -delete удаляет в папке файлы старше 7 и 30 дней соответственно. В планировщик хоть через каждый час. смотря как часто редактируется 1 Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 6, 2016 Share #14 Posted January 6, 2016 Странно, что больше никто не подтянулся. А то в одиночку я могу такого насоветовать )) Quote Link to comment Share on other sites More sharing options...
PRIMAS4UNO Posted January 7, 2016 Share #15 Posted January 7, 2016 Мы слушаем, восхищаемся и жуем попркорн . Не правда круто. Прямо тру линуксвэй... Из умного (но для меня чужого опыта) можно задействовать cloudstation (делать копию архива на win, др. syno и т.д.) и cloud Sync (выкладывать в облако хранящее старые копии [вроде dropbox и еще кто-то умеет] шифрованные архивы). Только это все скорее отказоустойчивость... Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 7, 2016 Author Share #16 Posted January 7, 2016 Всех с Рождеством Христовым! Репликация это создание идентичных копий. Меняешь на одном сервере - меняется на другом. А тебе нужен бэкап. Именно, т.е. полный как бы срез сайта в опред промежуток времени. На первом сервере получается: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/* find /volume1/public/testshopbackup/ -type f -mtime +7 -delete и включить службу FTP сервера На втором сервере. wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.* find /volume1/public/testshopbackup/ -type f -mtime +30 -delete Manpage:wget -P /volume1/testshopbackup_server2/ папка в которую будет качать wget --user=admin --password 123 пользователь и пароль от ftp на первом сервере. обязательно два минуса. -nc пропускать уже скачанные файлы ftp://192.168.1.37/public/testshopbackup/testshop*.* откуда собственно качать файлы. ну и адрес сервера и путь к файлам свои подставить find /volume1/public/testshopbackup/ -type f -mtime +7 -delete удаляет в папке файлы старше 7 и 30 дней соответственно. В планировщик хоть через каждый час. смотря как часто редактируется Вот это да. Спасибище. Попробую разобраться с этим трешем, и воспроизвести для своих железок. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 7, 2016 Author Share #17 Posted January 7, 2016 Мы слушаем, восхищаемся и жуем попркорн . Не правда круто. Прямо тру линуксвэй... Да, скоро азы начну понимать. Из умного (но для меня чужого опыта) можно задействовать cloudstation (делать копию архива на win, др. syno и т.д.) и cloud Sync (выкладывать в облако хранящее старые копии [вроде dropbox и еще кто-то умеет] шифрованные архивы). Только это все скорее отказоустойчивость... Есть dropbox. Не охота внешнее хранение использовать. Три сервака в сетке - места суммарно почти 15 ТБ. Quote Link to comment Share on other sites More sharing options...
PRIMAS4UNO Posted January 7, 2016 Share #18 Posted January 7, 2016 Три сервака в сетке - места суммарно почти 15 ТБ. Приличный объем. У меня все скромнее. Главное что бы электричество не подвело. У меня один раз свет мигнул - прощай два БП PC, встроенный на материнки LAN, и Роутер с 5 Lan портами превратился в Wi-Fi репитор. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 8, 2016 Author Share #19 Posted January 8, 2016 Три сервака в сетке - места суммарно почти 15 ТБ. Приличный объем. У меня все скромнее. Главное что бы электричество не подвело. У меня один раз свет мигнул - прощай два БП PC, встроенный на материнки LAN, и Роутер с 5 Lan портами превратился в Wi-Fi репитор. Про Qnap забыл, итого почти 18 ТБ. Фильмотека (все блю-рей) + музыка (Hi-Res). С электричеством так нельзя. Я тоже как-то раз халатно отнесся к подводу интернета в свой демо-офис (114 м кабель 6 кат для наружных работ, с крыши дома, по наружной стене). Возьми и прилепи сразу два грозо-разрядника по 15$, тем более имея в офисе реальную землю. Неа, ЛЕНЬ, все же работает, итернет есть, полный гигабит, ну а кабель; да и ладно, он натянут по углу, не достанет. Ага! Первая нормальная гроза и считаем минусы: минус роутер - 120 долл. минус свич с ПоЕ 4 порта Хьюлит П - 107 долл. стоял за рутером, спас вроде все остальное минус кабель от прова ко мне (видать сплавилась изоляция на жилах) и теперь имею полных 100 мбит/с вместо 1000 (на уцелевших жилах) минус свич провайдера (зато теперь и они землю дотянули до своего нового свича) минус соответственно сумма на все переделки. Думаю весной прокинуть оптику, вместо меди с крыши, и закрыть эту печальку. Но на данный момент, вся моя сеть выглядит так: на входном калеченном кабеле - грозо-разрядники и на стороне прова, и на моей стороне с заземлением, далее - роутер, свичи, РС, сервера, IP камеры, контроллеры и все то, что постоянно в локалке работает - воткнуто в сетевые фильтры и далее на ИБП, которых 2 шт. ИБП обычные АРС 650 вроде. Всё чётко. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 9, 2016 Author Share #20 Posted January 9, 2016 На первом сервере получается: mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/* find /volume1/public/testshopbackup/ -type f -mtime +7 -delete и включить службу FTP сервера На втором сервере. wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.* find /volume1/public/testshopbackup/ -type f -mtime +30 -delete В планировщик хоть через каждый час. смотря как часто редактируется А возможно в планировщике задач в Поле Скрипт ввести все три строки команд (как ранее было две строки при ручном обновлении DSM)? И соответственно три строки на втором сервере. Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 9, 2016 Share #21 Posted January 9, 2016 Думаю можно Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 9, 2016 Author Share #22 Posted January 9, 2016 Спасибо огромное, всё получилось: по расписанию выполняет бэкапы, второй сервер забирает (пронаблюдал даже)! С датами - все четко. Команды вписал сразу все в одну задачу: и на 1, и соответственно на 2 сервере. Вроде работает. Но возник вопрос. Перед запуском выполнения задач, сделал экспорт БД из PHPMyAdmin. Затем пронаблюдал выполнение задач, смотрю, что размеры файлов БД разные. Из PHPMyAdmin экпорт 2,8 МБ, а полученный дамп по команде - 2,6 МБ. Или он поджимается и это нормально? Quote Link to comment Share on other sites More sharing options...
antihrist2002 Posted January 9, 2016 Share #23 Posted January 9, 2016 Скорее всего phpmyadmin дописывает служебную инфу для себя. Точно незнаю. Бэкап базы можно открыть любым текстовым редактором и сравнить. Можно загрузить бэкап в соседнюю тестовую базу и проверить все ли нормально Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted January 9, 2016 Author Share #24 Posted January 9, 2016 На досуге проверю, поэкспериментирую с БД, попробую восстановить сайт из полученного бэкапа (файлы+БД). А так конечно здорово получилось. Quote Link to comment Share on other sites More sharing options...
aleksey_z Posted March 26, 2016 Author Share #25 Posted March 26, 2016 to antihrist2002 Привет. Недавно пробовал развернуть сайт из бэкапа - получилось. Единственно, в бэкапе файлов сайта, после распаковки архива, не было одного файла (по сравнению с бэкапом папки сайта с сервера на РС через WinSCP). Забыл, как называется файл (не очень я сайтовод), но методом сравнения добавил недостающий файл. В общем вроде все поднялось и работает, и даже обновил копию без проблем. Ещё раз спасибо. На днях потренируюсь ещё, вспомню, что отсутствовало. Отпишусь. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.