среда, 25 июля 2012 г.

Выполнение резервных копий и восстановление сайта с использованием Drush

Стал вопрос быстрого создания резервных копий сайта и их восстановления на различных видах хостинга. Рассмотрим вариант с использованием Drush. В дальнейшем планируем более детально рассмотреть создания резервных копий сайта где нету доступа к командной строке используя модули Backup and Migrate.
Drush замечательный инструмент! Он даёт нам большие возможности по работе с сайтами созданными на Drupal.
Создавать резервные копии и восстанавливать сайты с использованием Drush очень легко.

Для начало необходимо проверить версию Drush. Все примеры приведены под Drush 4.5.

drush --version
drush version 4.5

Наилучший способ сделать резервную копию сайта. Установите директорию drupal сайта и выполните следующую команду.
cd /var/www/example.com
drush archive-dump --destination=/var/backup/example.com.tar.gz

Archive saved to /var/backup/example.com.tar.gz                             [ok]
Для упрощения использования команд есть возможность использовать синонимы команд.
Если вы укажите директорию сайта в aliases.drushrc.php, тогда больше нет необходимости указывать директорию сайта.
 
$aliases['example'] = array(
  'root' => '/var/www/example.com',
);

К примеру.
drush @example arb --destination=/var/backup/example.com.tar.gz

Иследуем архив резервной копии сайта.
$ cd /var/backup && tar xf example.com.tar.gz && ls -lah
total 3.3M
drwxr-xr-x  3 dmytro dmytro 4.0K Dec  4 07:27 .
drwxr-xr-x 12 dmytro dmytro 4.0K Dec  4 07:15 ..
-rw-r--r--  1 dmytro dmytro 2.8M Dec  4 07:19 example.com.tar.gz
drwxr-xr-x  9 dmytro dmytro 4.0K Dec  4 07:11 example.com
-rw-r--r--  1 dmytro dmytro 525K Dec  4 07:19 example.sql
-rw-r--r--  1 dmytro dmytro  295 Dec  4 07:19 MANIFEST.ini
Замечательно! Здесь находятся архивированные файлы сайта, дамп базы данных MANIFEST.ini.
Посмотрим что в MANIFEST.ini:
 
cat MANIFEST.ini
[Global]
datestamp = "1322975948"
formatversion = "1.0"
generator = "Drush archive-dump"
generatorversion = "4.5"
 
[default]
docroot = "/var/www/example.com"
sitedir = "sites/default"
files-public = "sites/default/files"
database-default-file = "./example.sql"
database-default-driver = "mysql"

Как мы можем увидеть в MANIFEST.ini очень много полезной информации про архив резервной копии сайта.

Попытаемся восстановить сайт.
$ sudo drush archive-restore /var/backup/example.com.tar.gz \
--destination=/var/www/example.com \
--db-su=root --db-su-pw=password --overwrite

--db-su - пользователь базы данных.
--db-su-pw - пароль базы данных.
--overwrite - разрешает Drush перезаписывать файлы в месте назначения.

Последняя команда очень длинная. Можем опять воспользоваться синонимами в aliases.drushrc.php.

$aliases['example'] = array(
  'command-specific' => array(
    'archive-restore' => array(
      'destination' => '/var/www/example.com',
      'db-su' => 'root',
      'db-su-pw' => 'password',
      'overwrite' => TRUE,
    ),
  ),
);

Используем аккуратные команды для восстановления определенного сайта
sudo drush @example arr /var/backup/example.com.tar.gz 
Источник на английском языке.

1 комментарий:

  1. Автор источника на английском языке - носитель украинской фамилии)

    ОтветитьУдалить