Копировать файлы по ssh (с хоста на хост/с сервера на сервер)

SCP (Secure Copy Protocol) — Линукс команда для защищенного копирования файлов или папок на удаленный компьютер (сервер) или с него, используя для этого протокол SSH (Secure Shell). SCP является составной частью пакета OpenSSH. Благодаря использованию ssh, SCP является отличной заменой для небезопасного протокола FTP, которой широко используется в Интернете.

Иногда возникает задача передачи файлов с одного сервера на другой.

Приведу примеры как ее использовать.

Заходим на сервер используя SSH протокол , например через программу — PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/)

1. Как копировать файл на удаленный сервер:

Заходим в директорию от куда необходимо скопировать файл/файлы, например file1.zip в директории /home/ , необходимо скопировать на удаленный компьютер в папку /home2/ . Находимся на первом сервере 192.168.0.1

[email protected] [/home/]# scp file1.zip [email protected]:/home2/
или с любого места
[email protected] [/]# scp /home/file1.zip [email protected]:/home2/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:

т.е. scp файл пользователь@адрес_сервера (IP или домен):каталог на удаленном сервере куда необходимо это скопировать
если необходимо скопировать несколько файлов то их можно указать через пробел, т.е.: file1.zip file2.zip …

2. Как копировать файлы и папки на удаленный сервер:

например вам нужно скопировать несколько каталогов и в каждом каталоге есть много файлов. Находимся на первом сервере 192.168.0.1

[email protected] [/]# scp -r /home/ [email protected]:/home2/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:

будет все скопировано что находится в каталоге /home/
т.е. scp каталог_от_куда_копировать_папки_и_файлы пользователь@адрес_сервера (IP или домен):каталог на удаленном сервере куда необходимо это скопировать

параметр: -r – рекурсивное копирование папок (включая подкаталоги);

3. Как копировать файл с удаленного сервера:

Например на удаленном сервере находится file1.zip в директории /home2/, копируем на локальный сервер (там где находитесь) в папку /home/ . Находимся на первом сервере 192.168.0.1

[email protected] [/]# scp [email protected]:/home2/file1.zip /home/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:

т.е. мы скопируем с удаленного сервера файл file1.zip с папки /home2/ к себе в каталог /home/

4. Как копировать файлы и папки с удаленного сервера:

[email protected] [/]# scp -r [email protected]:/home2/ /home/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:

т.е. скопируем с удаленного сервера все что находится в каталоге /home2/ к себе в каталог /home/

параметр: -r – рекурсивное копирование папок (включая подкаталоги);

5. Как копировать файлы с одного сервера на другой находясь на третем.

[email protected] [/]# scp [email protected]:/home/file1.zip [email protected]:/home2/
после ввода у вас запросит пароль к удаленным серверам.
[email protected]’s password:
[email protected].168.0.2’s password:

т.е. мы скопируем с одного удаленного сервера (192.168.0.1) файл /home/file1.zip на другой удаленный сервере (192.168.0.2) в папку /home2/
находясь на третем сервере (192.168.0.3). Можно копировать файлы а так же и папки, используя параметр -r

Это конечно мало кому понадобится :) но такое возможно.

Возможные параметры SCP:

-r – рекурсивное копирование папок (включая подкаталоги);

-P port – использовать нестандартный порт (по умолчанию 22) – этот параметр следует использовать, если сервер ожидает соединения на нестандартном порту. Этот параметр может быть полезен при соединении из сети, защищенной файрволлом. Запуск SSH-сервера на порту 443 (используемом для защищенных HTTP-соединений) — это лучший способ обойти ограничения, установленные сетевым администратором.

Вместо конечного пути можно использовать точку