Поддержка абонентов: support@thehost.ua
Ваши отзывы и предложения: #feedback

8.7. Как скопировать файлы с сервера на сервер по протоколу SSH

1. Подключитесь к серверу по протоколу SSH используя SSH клиент, например Putty

IMG ALT TEXT


Если вы введете правильные параметры доступа перед вами откроется след. окно с командной строкой

IMG ALT TEXT


2. Наберите в командной строке команду - mc и вы попадете в менеджер файлов

IMG ALT TEXT


3. В верхнем меню файлового менеджера нажмите Right → Ftp Link
4. Введите в окне параметры доступа в виде login_ftp:pass_ftp@name_server.com и нажмите ОК

IMG ALT TEXT


5. В правом окне откроется список файлов на вашем удаленном сервере. Можете выполнять копирование между серверами, для этого внизу есть кнопка Copy

Для максимально быстрого и удобного копирования большого количества файлов/папок больших размеров желательно использовать утилиту rsync, особенности которой - копирование без искусственных ограничений, сжатия и шифрования, из-за которых копирование по ftp и ssh и происходит не очень быстро, на фактической скорости чтения/записи дисков и пропускной способности сети .
Разберем работу утилиты на примере

rsync -apogvr -e "ssh -c arcfour" --progress --bwlimit=10240 /var/www/slagor/data/www/
slagor@91.234.35.81:/var/www/slagor/data/www

Приведенную команду нужно запустить по ssh на исходящем сервере (с которого мы копируем данные). Также ее можно запустить и севевер получетя, но тогда нужно поменять местами получателя и отправителя (slagor@91.234.35.81:/var/www/slagor/data/www /var/www/slagor/data/www/).
При этом утилита должна быть установлена на обеих серверах - если на каком-то она не установлена - установить ее можно командой apt-get install rsync либо yum install rsync (для centos).
Так вот эта команда скопирует содержимое папки /var/www/slagor/data/www/
в папку /www пользователя slagor на сервер 91.234.35.81
При этом нужно будет указать пароль пользователя slagor. Можно также использовать root либо другого пользователя, при этом папку получателя нужно указывать с учетом корня пользователя.
Ключ ssh -c arcfour дополнительно ускорит rsync за счет использования более простого метода шифрования.
Иногда так случается, что скорость копирования нужно ограничить (например для того, чтобы не нагружать сильно дисковую систему сервера). Для ограничения скорости можно использовать директиву
--bwlimit=KBPS
которая ограничить скорость ввода/вывода, Кбайт/с
В примере, указанном выше команда с ограничением скорости копирования 10 МБ/С.
Добавление опций заставляет rsync делать следующее:
-p, --perms — перенос прав;
-g, --group — установить группу конечного файла таким же, как и у исходного;
-o, --owner — установить владельца конечного файла таким же, как и у исходного;
Разумеется, группы и пользователи должны существовать на целевом сервере куда осуществляется копирование.
Так же, бывают ситуации когда нужно исключить из копирования некоторый путь.
Тогда, нужно использовать директиву: --exclude='dir1/dir2/'
Где dir1/dir2/ - это исключаемый путь, относительно базы указанной в качестве источника копирования.