Как быстро перенести сайт на другой сервер

В последнее время столько раз переносил сайты с одного сервера на другой, что решил всё делать через командную строку, так быстрее. Хотя есть не намного медленнее альтернативы, если совместно использовать командную строку и графический интерфейс, но решил делать одним способом. Описываю процесс.

Удобно создать себе команды в каком-нибудь защищенном менеджере паролей и оттуда в случае необходимости копировать:

или в таком формате, где-нибудь в заметках, для каждого из своих сайтов:

В таком случае перенос сайта или базы данных будет занимать считанные минуты. Это будет казаться фантастикой, особенно, если раньше вы копировали с помощью FTP клиентов и страницы phpMyAdmin.

При переносе менять можно всего лишь ip адрес сервера, а пути оставлять прежними. Если вы везде пользуетесь одними инструментами, например, ISP Manager или Vesta, то пути и не меняются. Это очень удобно.

Все команды вместе

Сначала перенесем файлы сайта.

На старом сервере

Заходим на сервер через ssh, удобно логиниться через быстрые ярлыки.

Переходим в директорию, которую будем архивировать:

Запаковываем в .tar.gz (сохраняем только папку сайта, без полного пути):

Переносим архив сайта на другой сервер:

При первом подключении к стороннему серверу появится сообщение о том, что надо внести уникальный отпечаток, чтобы в последствии доверять этому серверу. Надо ответить yes.

1
2
3
The authenticity of host '111.11.11.11 (111.11.11.11)' can't be established.
ECDSA key fingerprint is 01:al:39:bm:19:ds:32:59:ns:49:fm:ds:59:18:38:23.
Are you sure you want to continue connecting (yes/no)?

Затем вводим пароль доступа от нового сервера:

1
2
Warning: Permanently added '111.11.11.11' (ECDSA) to the list of known hosts.
root@111.11.11.11's password:

После чего файл будет скопирован на новый сервер.

У меня при команде scp показывает ошибку:

1
ssh: No such file or directory

Но, если перед ней указано что-то вроде:

1
100%  600MB  10.5MB/s   00:57

Значит, что наш резервный файл был скопирован удачно и в нужное место.

Я не знаю с чем связано уведомление No such file or directory, когда при этом всё копируется. Может баг такой. Если вдруг директории такой и в самом деле нет, то в этом случае никакого копирования не произойдет.

Удаляем бакам на старом месте. Он нам больше не нужен.

На новом сервере

Заходим на новый сервер. А затем переходим в директорию в которую хотим распаковать архив:

Распаковываем в эту папку все файлы:

Для запоминания этого набора букв, будет полезным знать их назначения.

xvvzf расшифровывается как:
x — распаковка, vv — подробный вывод результатов, z — формат файла gz, f — файл.

Удаляем наш бэкап файл:

Перенос сайта

На старом сервере:

1
2
3
4
5
cd /home/admin/web/ploshadka.net/public_html/
tar -cvvzf site.tar.gz ./
scp site.tar.gz ssh root@111.11.11.11:/home/admin/web/ploshadka.net/public_html/
(ввести пароль от нового сервера)
rm -f /home/admin/web/ploshadka.net/public_html/site.tar.gz

На новом:

1
2
3
cd /home/admin/web/ploshadka.net/public_html/
tar -xvvzf /home/admin/web/ploshadka.net/public_html/site.tar.gz
rm -f /home/admin/web/ploshadka.net/public_html/site.tar.gz

Переносим базу данных MySQL

Теперь пришла очередь перенести базу данных сайта.

На старом сервере

Снова переходим в директорию, которую будем архивировать. Это нужно делать всегда, на всякий случай, особенно если сайтов много, чтобы не было ошибок:

Экспортируем и архивируем базу данных. В USER и DBNAME вводим название конкретной базы данных и название пользователя для неё, которую хотим экспортировать. Вместо PASS вводим пароль от этой же базы данных.

Переносим на новый сервер:

Вводим пароль от нового сервера. Всё перенеслось, если в конце будет подобное:

1
100%  162KB 162.4KB/s   00:00

Удаляем файл со старого сервера:

На новом сервере

Импортируем базу данных. Вместо BDNAME — название нашей базы данных. Само слово root — не меняем.

Обратите внимание пароль от root доступа к MySQL. Для панели Vesta его можно найти здесь.

Удаляем файл с нового сервера:

Все команды вместе:

На старом:

1
2
3
4
5
cd /home/admin/web/ploshadka.net/public_html/
mysqldump -u USER -pPASS DBNAME | gzip > /home/admin/web/ploshadka.net/public_html/bd.sql.gz
scp bd.sql.gz ssh root@111.11.11.11:/home/admin/web/ploshadka.net/public_html/
(ввести пароль от нового сервера)
rm -f /home/admin/web/ploshadka.net/public_html/bd.sql.gz

На новом:

1
2
zcat /home/admin/web/catavto.com/public_html/bd.sql.gz | mysql -u root -pПароль_от_рутдоступа_mysql BDNAME
rm -f /home/admin/web/ploshadka.net/public_html/bd.sql.gz

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Как быстро перенести сайт на другой сервер".

Ваш e-mail не будет опубликован. Обязательные поля помечены *