ruskar
@ruskar
Conflict Intelligence Team

Как простым образом перенести очень большой сайт с одного сервера на другой?

Стоит задача: перенести сайт с одного хостинга на другой. Проблема: файлы сайта весят уже почти 50 Гб. Причём почти все эти 50 Гб. — по сути несжимаемые форматы (mp3 + видеофайлы). Подбросьте какие-нибудь идеи, как бы с наименьшим геморроем и с небольшими затратами по времени перенести файлы сайта с одного сервера на другой?



Оба сервера стоят на CentOS. Серверы стоят в разных компаниях, предоставляющих колокейшн.
  • Вопрос задан
  • 12794 просмотра
Пригласить эксперта
Ответы на вопрос 11
DobroFenix
@DobroFenix
Самое простое это выкачать всё через rsync
Более сложный через ftp/scp
Ответ написан
Комментировать
nochkin
@nochkin
rsync может копировать, а при обрыве сам проверять что уже скопировано и не копировать заново (опции inplace/partial).
Так же rsync может это делать с компрессией на лету и через ssh (опции -z и -e).
Он может сохранить права, время и прочие атрибуты. Будет копия один в один (опция -a).
Можно даже ограничить скорость копирования если надо весь канал не забивать (опция bwlimit).
Проще и надежнее уже не придумаешь.
Ответ написан
Комментировать
Wott
@Wott
64 гиговая флешка :)
Ответ написан
Комментировать
@SergeyR
На сервере 1 входите в SSH и запускаете mc и в одном из окон подключаетесь по FTP или SSH на 2 сервер.
И просто копируете директорию с одного на другой (возможно даже в фоновом режиме).
Ответ написан
ZiGR
@ZiGR
Я бы посоветовал Вам сначала упаковать все эти файлы в zip архив (ибо один большой файл будет переноситься гораздо быстрее, чем 100k маленьких), а затем через ssh соединиться с первым сервером, а затем с него соединиться по ftp с новым сервером и начать копирование архива. С помощью screen можете поставить этот процесс на самостоятельное выполнение, чтоб не держать Ваш компьютер включенным длительное время.
Ответ написан
Комментировать
@stalkerxxl
если на обоих серверах ISP-панель — то просто «импорт пользователя»
Ответ написан
Комментировать
IlyaEvseev
@IlyaEvseev
Opensource geek
На обоих серверах устанавливаете rsync: yum install rsync
На сервере-источнике редактируете /etc/rsyncd.conf:
uid = root
use chroot = no

[RootFS]
path = /
read only = yes
hosts allow = ip-адрес нового сервера

и запускаете /etc/init.d/rsyncd start
На сервере-приемнике создаёте каталог /home/oldserv и выполняете команду:
rsync \
--archive         \
--hard-links      \
--inplace         \
--numeric-ids     \
--delete          \
--delete-excluded \
--progress        \
"--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs}" \
"$IP-старого-сервера::RootFS" "/home/oldserv/"

Запускаете её снова до тех пор, пока время выполнения не перестанет уменьшаться.

На старом сервере выполняете /etc/init.d/rsyncd stop, в /etc/rsyncd.conf комментируете секцию «RootFS».
Ответ написан
Комментировать
@stalkerxxl
или просто скопировать ftp--->ftp
Ответ написан
Комментировать
@SergeyR
(не туда) удалил.
Ответ написан
Комментировать
1) Копируете данные. Все из выше описанного подойдет, но я бы всё-таки выбрал rsync. Другие предложенные методы будут дольше по времени если у вас тонны мелких файлов.
2) На новом сервере открываем нашему пользователю БД доступ из интернета.
3) Выключаем БД на старом сервере. Делаем дамп. Сливаем на новый.
4) В скриптах на старом сервере прописывает коннект до бд на новой и запускаем сайт.
5) Меняем нски на домене. Желательно у старого хостера сменить А запись нашего домена на новый ип, это обычно происходит за пару минут (смотря какой ттл).

Вот по такой схеме всегда переношу работающие проекты почти прозрачно для пользователей
Ответ написан
Комментировать
@alexmixaylov
Вопросу уже более трех лет
но я нашел его через гугл

Самое простое решение, на мой взгляд
делаете архив на старом сервере
на новом подключаетесь по SSH и выкачиваете при помощи wget -c
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы