Для самостоятельного бекапа сайтов на Вашем аккаунте необходимо подключится к нему используя протокол SSH и выполнить следующую команду для перехода в Ваш домашний каталог:
cd ~
Существует 2 способа создания бекапа Ваших сайтов:
1. Самым быстрым и удобным методом бекапа Drupal сайта на нашем хостинге является использование drush. Для бекапа сайта нужно выполнить следующую команду:
drush -r ~/domains/имя_домена ard --destination=/home/`whoami`/backup/`date +%Y%m%d`/имя_файла.tar.gz
Эта команда создаст каталог backup в Вашем домашнем каталоге, после внутри его создаст каталог с текущей датой и в него положит архив сайта путь к которому указан в команде.
В случае если Вы используете мультисайтинг то можно указать следующую команду, для создания бекапа конкретного сайта мультисайтинга:
drush -r ~/domains/имя_домена/sites/корень_сайта_мультисайтинга ard --destination=/home/`whoami`/backup/`date +%Y%m%d`/имя_файла_бекапа.tar.gz
Внутри созданного архива будут хранится файлы Вашего сайта в каталоге c именем сайта и файл дампа БД в sql формате.
Если Вам необходимо сделать бекап всех сайтов на Вашем аккаунте запустите следующую команду:
for i in `find /home/\`whoami\`/domains -mindepth 1 -maxdepth 1 -type d| grep -vP "(logs|awstats)"`;do drush -r $i ard --destination=/home/`whoami`/backup/`date +%Y%m%d`/`echo $i |awk -F"/" '{ print $5 }'`.tar.gz ;done
Эта команда создаст бекап всех drupal сайтов расположенных в domains в каталоге backup/текущая_дата в формате имя_домена.tar.gz (в случае мультисайтинга - данная команда не сработает, мы работаем над модификацией данной команды для поддержки данной возможности)
Дополнительно следует учесть что для создания бекапа необходимо достаточное количество дискового пространства иначе создание бекапа завершится с ошибкой.
2. Вторым способом создания бекапа является использование инструментов mysqldump и архиватора tar - он будет работать в том числе и если drush недоступен. В первую очередь следует создать каталог backup в Вашем домашнем каталоге:
mkdir -p ~/backup
Нужно перейти в данный каталог и создать внутри каталог с текущей датой:
cd ~/backup && mkdir -p `date +%Y%m%d` && cd ~/backup/`date +%Y%m%d`
Далее следует создать бекап файлов домена:
tar czfh имя_файла_бекапа.tar.gz ~/domains/имя_домена 2> /dev/null
И дамп БД сайта:
mysqldump -u u2999_dbuser -p u2999_db > ~/backup/`date +%Y%m%d`/u2999_db.sql
tar czfh имя_файла_бекапа.tar.gz ~/domains/имя_домена 2> /dev/null
И дамп БД сайта:
mysqldump -u u2999_dbuser -p u2999_db > ~/backup/`date +%Y%m%d`/u2999_db.sql
Здесь надо заменить u2999_dbuser на вашего пользователя базы данных, а u2999_db на вашу базу данных.
Так же, утилита mysqldump спросит пароль для пользователя u2999_dbuser, Вам необходимо будет его ввести.
После этого в каталоге ~/backup/текущая дата/ будут находиться 2 файла - архив с файлами и дамп базы данных.
Так же, утилита mysqldump спросит пароль для пользователя u2999_dbuser, Вам необходимо будет его ввести.
После этого в каталоге ~/backup/текущая дата/ будут находиться 2 файла - архив с файлами и дамп базы данных.
Бекапы Вы можете скачать по FTP/SSH-протоколу, или переместить в директорию Вашего сайта и скачать по http
Comments (22)
Добрый вечер. Я дико извиняюсь, но напишите пжта команду как сделать бэкап 1 домена, а не всех (а то у меня уже место не хватает делать сразу все) и 1 базы данных по 2 способу. Спасибо.
Добрый день.
1.Сделал как тут написано:
1. Самым быстрым и удобным методом бекапа Drupal сайта на нашем хостинге является использование drush. Для бекапа сайта нужно выполнить следующую команду:
drush -r ~/domains/имя_домена ard --destination=/home/`whoami`/backup/`date +%Y%m%d`/имя_файла.tar.gz
Получил только архив файлов сайта, без архива базы данных. У меня нет мультисайтинга - подскажите как сделать бэкап базы данных. Спасибо.
2. Если Вам необходимо сделать бекап всех сайтов на Вашем аккаунте запустите следующую команду:
for i in `find /home/\`whoami\`/domains -mindepth 1 -maxdepth 1 -type d| grep -vP "(logs|awstats)"`;do drush -r $i ard --destination=/home/`whoami`/backup/`date +%Y%m%d`/`echo $i |awk -F"/" '{ print $5 }'`.tar.gz ;done
Подскажите из какого места мне надо это делать? просто cd~ перейти после соединения и все?. Спасибо.
Возможно, я неправ, но в папке с сайтом рядом кладётся файл manifest и sql файл Вашего сайта.
P.S. сам пока из таких бэкапов восстанавливать не пробовал.
Команды из п.1 и 2 можно выполнять в любом удобном Вам каталоге - итоговые файлы будут помещены в каталог backup/текущая_дата/
Здравствуйте
Какие-либо подвижки в плане автоматизации резервного копирования появились?
Приветствую.
Озадачился вопросом автоматической загрузки бэкапов на локальную машину по крону.
Пробовал:
- wget: не умеет ssh/sftp
- curl: не удалось настроить загрузку файлов по маске, например:
необходимо загрузить бэкапы из папки сервера ~/.bkp/mysql/daily в папку ~/backup локальной машины, команда:
curl -u u1234:pass ftp://krypton.vps-private.net/.bkp/mysql/daily/*.sql -o ~/backup/#.sql
но curl не обрабатывает маску *.sql, надо задавать имена файлов в явном виде, что неудобно
- sftp: вроде бы умеет скачивать файлы по маске *, но не удалось указать пароль к удаленному серверу в командной строке
также, возникает вопрос с переименованием скачанных файлов - добавлять дату файла в его имя
м.б. располагаете готовым скриптом, чтобы запускать его на локальной машине по крону?
Здравствуйте
К сожалению, готового скрипта нет. Напишите пожалуйста, нам в техподдержку, мы постараемся вам помочь в решении данного вопроса.
Подскажите, пожалуйста, что такое 2 в этой строке
tar czfh backup.tar.gz ~/domains/example.com 2> /dev/null
Здравствуйте
2 - это обозначение потока для вывода ошибок. Более детально о потоках вы можете прочитать здесь
drush arb
в папке домена(или папке сайта при мультисайтинге) - самый удобный способ, на мой взгляд. Архив падает в drush-backups.
Возможно, следует включить в статью описание backup drush'eм первым пунктом, учитывая, что это хостинг для Drupal c установленным Drush ))
Доброго времени суток!
Никаких пакетов для работы с сайтом на хостинге доустанавливать не нужно. Вам следует подключится к серверу с помощью сеанса SSH перейти в каталог с доменом c помощью команды cd ~/domains/имя_домена и уже находясь в нем выполнять команды drush
скажите, вот я установила putty, подключилась к своему аккаунту на хостинге, не могу перейти в каталог с доменом c помощью команды cd ~/domains/имя_домена - пишет No such file or directory
Куда необходимо скопировать файл example.drushrc.php со скаченного архива drush?
Устанавливать Drush распаковывая example.drushrc.php и другие файлы из инсталлятора не нужно - drush уже установлен для всех аккаунтов.
В команде cd ~/domains/имя_домена имя_домена нужно сменить на то домен с которым Вы собираетесь работать и после перехода в этот каталог выполнять команды drush
Виталий, спасибо огромное!
Идем в папку с settings.php
cd ~/domains/domain.com/sites/domain.com
Бэкапим базу при помощи drush не зная никаких паролей/юзеров к mysql
drush sql-dump --result-file="dump.sql"
(dump.sql в данном случае "упадет" в корень домена, т.е. в ~/domains/domain.com)
Делаем полный архив папки с доменом + новоиспеченного дампа mysql
zip -r ~/backup/domain.com.zip ~/domains/domain.com 2> /dev/null
(плюсы zip'a = если домен у вас в мультисайтинге и используются симлинки - он по ним пойдет и заархивирует не симлинк, а физическую папку на которую он (симлинк) указывает).
Удаляем дамп mysql и корня домена
rm ~/domains/domain.com/dump.sql
Как то так.
P.S. Есть и другой вариант, бэкапить сразу всё drush'ем.
а нельзя создать кнопку чтобы не прописывать каждый раз=))кому это надо чтоб каждый раз код вспоминать?+))
просто все вот эти длинные команды с путями прописываете в свой пунтосвичер на, скажем, трёхзнаковые сочетания и вперёд в Putty
будет очень быстро и точно
К сожалению, на данный момент у нас такой функциональности нет. Данная задача стоит у нас в планах на реализацию.
Подскажите, пожалуйста, как настроить процедуру автоматического бекапа сайта по расписанию? Чтобы все перечисленные действия выполнялись ежедневно в автоматическом режиме, и в папке "backup" сохранялись бекапы за последние 7 дней. Свежий бекап перетирал самый старый.
помогите откатить сайт по состоянию на 26.12.2012
Здравствуйте
Создайте, пожалуйста, тикет в нашу службу технической поддержки - поможем Вам с Вашим вопросом.
С уважением, Юрий