Полезные команды SSH при переносе сайтов

Ниже описывается простой способ переноса сайта среднего размера на Unix сервере с базой данных MySql, аналогично указанные действия применимы при создании резервной копии сайтов, при восстановлении сайтов из резервных копий.

Примером сайта среднего размера может служить иинтернет-магазин с несколькими тысячами наименований товаров.Чем мощнее сервер, тем быстрее и проще проходит порцедура переноса / архивирования / восстановления сайта.

Работы с небольшими сайтами

При переносе небольших сайтов удобно пользоваться повседневными инструментами веб-администратора:

  • для переноса папок и файлов: FTP-клиент или файл-менеджер с веб-интерфейсом,
  • для работы с базами данных PhpMyAdmin (для самого распространенного типа базы данных - MySQL).

Работы с сайтами средних размеров

При переносе средних сайтов вышеописанные инструменты не позволят произвести перенос по причине большого количетва файлов в папке с системой управления сайтом (как следствие - большой объем данных) и большого размера файла дампа базы данных (копии базы данных в формате SQL).

Перенос сайтов среднего размера (в некоторых случаях - для крупных сайтов аналогично) удобнее производить в следующем порадке:

Создание копии

  1. архивируем необходимую папку посредством SSH,
  2. экспортируем базу данных в дамп SQL посредством SSH,
  3. архивируем дамп SQL посредством SSH,

Восстановление копии

  1. переносим архив с файлами на новое место назначения через FTP*,
  2. переносим архив дампа SQL на новое место назначения посредством FTP*,
  3. разархивируем архив с файлами сайта посредством SSH,
  4. разархивируем архив с дампом SQL посредством SSH,
  5. импортируем дамп SQL в необходимую базу.

*Пункты отмеченные оранжевым цветом со звездочкой необходимы только если сайт источник и сайт назначения находятся на разных серверах, иначе перенос файлов возможен командой "mv [file_from] [file_to]", где [file_from] - расположение файла источника с названием, [file_to] - расположение файла назначения с названием, например: "mv /home/user1/data/backup/site1/archive1.tar.gz /home/user1/data/www/site1/archive1.tar.gz".

Для переноса файлов и импорта в базу данных рекомендуем использовать SSH - выполнение команд происходит сервером напрямую (не через скрипты используемые веб-интерфесом), что ускоряет процедуру, позволяет работать с большими размерами файлов.

Архивация папки

tar -cvzf [file_name].tar.gz [folder_name]

Примечания:

  • перед запуском команды зайдите в каталог, где расположена папка,
  • [file_name] - название файла с архивом, указывается без квадратных скобок,
  • [folder_name] - исходная папка, которую необходимо заархивировать, указывается без квадратных скобок,
  • полученный файл архива будет расположен в текущем каталоге (чтобы узнать текущий каталог используйте команду "pwd"),
  • аналогичная команда выполняет архивацию одного файла, если вместо [folder_name] указать название файла.

Разахивация папки или файла

tar -zxvf [file_name].tar.gz

Примечания:

  • [file_name] - название файла с архивом, указывается без квадратных скобок,
  • разархивированная папка будет расположен в текущем каталоге (чтобы узнать текущий каталог используйте команду "pwd"),
  • аналогичная команда выполняет разархивацию одного файла, если в архиве один файл.

Экспорт базы данных в дамп SQL

mysqldump -u[user] -p[password] [database_name] > [file_destination].sql

Примечания:

  • [user] - пользователь базы данных, указывается без квадратных скобок,
  • [password] - пароль пользователя базы данных, указывается без квадратных скобок,
  • [database_name] - имя экспортируемой базы данных, указывается без квадратных скобок,
  • [file_destination] - название записываемого файла с дампом базы данных (копия базы данных в формате SQL).

Импорт дампа SQL в базу

mysql -u[user] -p[password] [database_name] < [file_destination].sql

Примечания:

  • предварительно необходимо создать базу, если еще не создана,
  • база данных назначения должна быть пустой,
  • [user] - пользователь базы данных, указывается без квадратных скобок,
  • [password] - пароль пользователя базы данных, указывается без квадратных скобок,
  • [database_name] - имя экспортируемой базы данных, указывается без квадратных скобок,
  • [file_destination] - название считываемого файла с дампом базы данных (копия базы данных в формате SQL).