Обычно при переносе сайтов на новый хост, я создаю архив с файлами сайта в ручном режиме на старом хосте. Далее скачиваю этот архив на свой ПК и загружаю уже на новый хост с жесткого диска.
Как вариант, можно использовать архивы с копиями, если они заливаются в облако, а облако подключено к вашему ПК. В этом случае, можно одним кликом загрузить папку с файлами сайтов и базами. Это удобно когда переносишь сразу десятки сайтов, но при условии, что сайты не большие и архивы не большие по 10-500 мегабайт. Для понимания процесса прикрепил скрин ниже, где видно сайт весом более 10 гигабайт.
Перенос больших сайтов с сервера на сервер без сохранения на ПК
В случае, когда сайт тяжелый, содержащий гигабайты медиа файлов, делать download еще пол беды и скачивать будет долго, но вполне возможно. Но вот upload в панель на новом хосте может завершиться неудачей и вы потеряете много времени на перенос такого тяжелого сайта.
Есть решение! Для этого можно использовать копирование файлов по ssh. Cпособ переноса архива сайта на новый хост «на лету», без загрузки на жесткий диск. Далее опишу этот способ по шагам на примере одного тяжелого сайта весом более 10 гигабайт.
Шаг 1
Создаем архив с файлами на старом хосте и копируем путь до папки с сайтом из корня.
Кстати, если сайты на сервере созданы под одним юзером, можно создать архив с несколькими сайтами сразу, чтобы перекинуть на новый сервак и уже там раскидать по папкам. Тут все упирается в количество и тяжесть сайтов, а так же мощности ваших ВПСок.
Шаг 2
Открываем ваш любимый SSH клиент, у меня это MobaXterm (оф сайт, если захотите попробовать эту удобнейшую софтину). После того как залогинились рутом на НОВЫЙ сервак, переходим в папку с сайтом на новом VPS командой
cd /var/www/user1/data/www/site.com
Естественно, что предварительно нужно создать сайт в панели на вашем новом хосте.
Шаг 3
Итак, мы в консоли и в папке с сайтом, который переносим, уже на новом хосте. Тут подходим к самому важному:) Нужно ввести команду, чтобы новый сервер выкачал тяжелый архив с файлами сайта со старого сервера и положил в указанную выше папку. Команда имеет примерно следующий вид, но может отличаться в зависимости от расположения и вложенностей папок на ваших серверах. Команда копирования файла по SSH выглядит примерно так:
rsync -arpPvt --log-file=progress_rsync [email protected]:/var/www/user/data/www/site.com/archiveqB0Yk.tar.gz ./
Где,
10.10.10.10 — IP адрес вашего старого сервера,
/var/www/user/data/www/site.com/archiveqB0Yk.tar.gz — полный путь до вашего архива на старом сервере.
После запуска команды на новом сервере, консоль потребует ввести root пароль от старого сервера и ваше согласие на перенос фингерпринтов, нужно ввести yes.
Если все было задано верно, будет виден прогресс загрузки и время до окончания операции копирования файла. Останется только дождаться окончания процесса, перейти в папку через файловый менеджер на номом сервере, распаковать архив и продолжить настройку работы сайта на новом сервере.
Возможные ошибки
Есть вероятность, что вы словите такую ошибку после ввода команды: rsync: [Receiver] write error: Broken pipe (32). На 99% причиной будет являться ошибка в команде, а именно в пути до архива с сайтом. Еще раз внимательно проверьте правильность команды и пути до файла. В противном случае, скорее всего не достаточно места на вашем новом сервере.
На этом всё, спасибо что прочитали! Надеюсь инструкция выше по копированию тяжелых сайтов с сервера на сервер по SSH вам помогла. Пишите в комментариях свои вопросы, или делитесь новыми фишками.