- Копирование файлов с помощью команды SCP
- Необходимость в SSH-сервере
- Синтаксис и использование утилиты SCP
- Выбор пользователя
- Копирование директории
- Копирование с сервера на компьютер
- Копирование файлов через SSH
- Копирование файлов по SSH на Linux
- Как скопировать файл по SSH с локальной машины на удалённый сервер
- Как скопировать файлы с удалённого сервера на локальный компьютер
- Как скопировать файл по SSH с одного удалённого сервера на другой
- Как скачать папку со всеми файлами и подпапками
- Как подключиться к серверу по нестандартному порту
- Как передать и скачать файлы по SSH на Windows
- SCP. Удаленное копирование файлов и папок
- Как копировать файл на удаленный сервер:
- Как копировать файлы и папки на удаленный сервер:
- Как копировать файл с удаленного сервера:
- Как копировать файлы и папки с удаленного сервера:
- Как копировать файлы с одного сервера на другой находясь на третем.
Копирование файлов с помощью команды SCP
Передача файлов на удаленный сервер невозможна при помощи обычной физической флешки или другого устройства хранения данных, поэтому пользователям приходится использовать сетевые методы копирования и перемещения объектов. При этом важно выбрать безопасный вариант, реализация которого не займет много времени.
Один из самых надежных способов – использование консольной утилиты SCP в Linux, о которой и пойдет речь далее.
Необходимость в SSH-сервере
Перед началом разбора необходимо остановиться на таком понятии, как SSH-сервер. Он необходим для работы SCP в Linux, поскольку утилита использует именно этот протокол. Вам понадобится установить SSH-протокол и настроить его. Кроме того, важно знать пароль или ключ для подключения, о чем более детально читайте в статье по следующей ссылке.
Синтаксис и использование утилиты SCP
$ scp options user@хост1:файл user2@хост2:file
Это общий синтаксис утилиты, который необходимо использовать при вводе команды в Терминале, чтобы она выполнилась успешно и обработала ваш запрос. Как видно, ничего в этом трудного нет, однако нужно подробнее разобрать доступные опции (они же options в строке синтаксиса):
- -1 – в этом случае используется протокол SSH1;
- -2 – то же самое, но с версией SSH2;
- -B – активация пакетного режима, когда нужно передать сразу пачку файлов;
- -C – использовать сжатие при отправке;
- — l – установка ограничения в кбит/сек (значение задается пользователем вручную);
- -o – добавление опций SSH;
- -p – сохранение времени изменений файлов;
- -r – использование рекурсивного копирования папок;
- -v – переход в более развернутый режим.
Некоторые из перечисленных опций, возможно, пригодятся вам в работе, поэтому рекомендую запомнить их или где-то сохранить с понятными для вас пометками, чтобы знать, когда и что использовать. Далее я развернуто расскажу о популярных опциях и их практическом применении.
Выбор пользователя
scp /home/user/file root@timeweb:/root/
Так выглядит стандартное копирование файлов SCP без применения дополнительных опций. То есть вы указываете путь к файлу (user замените на свое имя пользователя), затем добавляете путь назначения. Одно важное замечание: у пользователя должно быть разрешение на запись в указанную папку, иначе операция прервется.
Копирование директории
Если вы ознакомились с описанным выше списком опций, то уже знаете, что SCP предлагает передачу целых директорий с использованием опции -r. В таком случае строка в Терминале обретает вид:
scp -r /home/user/photos root@timeweb:/root/
Если нужно передать все файлы из определенной папки, замените строку на следующую:
scp -r /home/user/photos/* root@timeweb:/root/
Только не забудьте изменить путь к файлу и место назначения. Как видно, добавилась только косая черта после последней директории и значок *, обозначающий копирование всех элементов.
Копирование с сервера на компьютер
Предыдущие три команды позволяли передавать файлы с локального компьютера на удаленный сервер, однако утилита поддерживает и обратное направление. В таком случае написание команды в консоли немного меняется и обретает примерно такой вид:
scp root@timeweb:/root/file /home/user/
Мы просто поменяли местами пути в команде. Вы можете использовать все те же опции, осуществляя копирование с разными атрибутами или передавая целые каталоги.
Если файлы передаются с одного удаленного сервера на другой, то их адреса указываются следующим образом:
scp root@timeweb:/home/root/index.html root@timeweb:/home/root/www/
При вводе команд обращайте внимание на одну деталь: путь к директории, в которую вы копируете данные, обязательно должен заканчиваться косой чертой, иначе произойдет перезапись файлов, и вы потеряете данные, хранящиеся в конечной папке.
Это была общая информация об утилите SCP, которая поможет скопировать файлы с компьютера на удаленный сервер либо перенести их между удаленными серверами. Используйте опции и не забывайте проверять пути, чтобы случайно не перезаписать важные файлы.
Копирование файлов через SSH
В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH.
Для копирования файлов по SSH в Linux-системах и Windows используют разные инструменты:
- scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH. Она входит в состав OpenSSH, поэтому для работы с утилитой не нужно устанавливать дополнительное ПО;
- pscp.exe — утилита для загрузки файлов по SSH в ОС Windows. Она обладает теми же возможностями, что и scp. Утилита входит в состав программы Putty — SSH-клиента для Windows. Скачать программу можно по ссылке.
Если файл, который вы хотите скопировать, уже существует на целевом хосте, при копировании он будет перезаписан.
Копирование файлов по SSH на Linux
Для Linux копирование файлов по SSH происходит с использованием команды scp. С её помощью можно копировать файлы:
- с локального компьютера на удалённый сервер,
- с удалённого сервера на локальный компьютер,
- с одного удалённого сервера на другой.
scp [опция] [источник] [получатель]
Как скопировать файл по SSH с локальной машины на удалённый сервер
Как загрузить файл на сервер по SSH? Для этого используйте команду вида:
scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
scp /home/test.txt root@123.123.123.123:/directory
Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».
Как скопировать файлы с удалённого сервера на локальный компьютер
При подключённом SSH скачать файл на локальный компьютер с удалённого сервера можно с помощью команды:
scp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
scp root@123.123.123.123:/home/test.txt /directory
Файл test.txt будет загружен с сервера 123.123.123.123 на локальный компьютер в папку «/directory».
Как скопировать файл по SSH с одного удалённого сервера на другой
Подключитесь по SSH к серверу, на котором расположен файл. Затем выполните команду:
scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
scp /home/test.txt root@123.123.123.123:/directory
Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».
Как скачать папку со всеми файлами и подпапками
Если вы хотите скачать папку со всеми файлами и подпапками, используйте ключ -r:
scp -r [источник] [получатель]
Как подключиться к серверу по нестандартному порту
Бывает, что для подключения по SSH нужно указать нестандартный порт. Без указания порта команда подключается к серверу по стандартному 22 порту. Чтобы указать нестандартный порт, введите команду с ключом -P:
scp -P [источник] [получатель]
scp -P 12345 /home/test.txt root@123.123.123.123:/directory
Эта команда подключается по порту 12345 к серверу 123.123.123.123 и копирует на него файл «test.txt» с локального компьютера в директорию «/directory».
Как передать и скачать файлы по SSH на Windows
Скопировать файл по SSH на сервер можно командой:
pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
Скачать файл по SSH с сервера командой:
pscp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
Увидеть список папок и файлов на сервере можно через pscp.exe. Для этого введите:
pscp -ls [имя пользователя]@[имя сервера/ip-адрес]:[путь]
Если в пути или в названии файла есть пробелы, используйте кавычки:
pscp “C:\files or docs\file name” root@123.123.123.123:/home
SCP. Удаленное копирование файлов и папок
Часто бывает ситуация, когда необходимо выкачать с одного сервера на другой какой-то набор файлов или папок (часто с вложенными друг в друга подпапками). Для этих случаев можно воспользоваться командой SCP.
SCP (Secure Copy Protocol) — Линукс команда для защищенного копирования файлов или папок на удаленный компьютер (сервер) или с него, используя для этого протокол SSH (Secure Shell). SCP является составной частью пакета OpenSSH. Благодаря использованию ssh, SCP является отличной заменой для небезопасного протокола FTP, которой широко используется в Интернете.
Как копировать файл на удаленный сервер:
Заходим в директорию от куда необходимо скопировать файл/файлы, например file1.zip в директории /home/ , необходимо скопировать на удаленный компьютер в папку /home2/ . Находимся на первом сервере 192.168.0.1
r[email protected] [/home/]# scp file1.zip [email protected]:/home2/
или с любого места
ro[email protected] [/]# scp /home/file1.zip [email protected]:/home2/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:
т.е. scp файл пользователь@адрес_сервера (IP или домен):каталог на удаленном сервере куда необходимо это скопировать
если необходимо скопировать несколько файлов то их можно указать через пробел, т.е.: file1.zip file2.zip .
Как копировать файлы и папки на удаленный сервер:
например вам нужно скопировать несколько каталогов и в каждом каталоге есть много файлов. Находимся на первом сервере 192.168.0.1
[email protected] [/]# scp -r /home/ [email protected]:/home2/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:
будет все скопировано что находится в каталоге /home/
т.е. scp каталог_от_куда_копировать_папки_и_файлы пользователь@адрес_сервера (IP или домен):каталог на удаленном сервере куда необходимо это скопировать
параметр: -r – рекурсивное копирование папок (включая подкаталоги);
Как копировать файл с удаленного сервера:
Например на удаленном сервере находится file1.zip в директории /home2/, копируем на локальный сервер (там где находитесь) в папку /home/ . Находимся на первом сервере 192.168.0.1
ro[email protected] [/]# scp [email protected]:/home2/file1.zip /home/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:
т.е. мы скопируем с удаленного сервера файл file1.zip с папки /home2/ к себе в каталог /home/
Как копировать файлы и папки с удаленного сервера:
[email protected] [/]# scp -r [email protected]:/home2/ /home/
после ввода у вас запросит пароль к удаленному серверу.
[email protected]’s password:
т.е. скопируем с удаленного сервера все что находится в каталоге /home2/ к себе в каталог /home/
параметр: -r – рекурсивное копирование папок (включая подкаталоги);
Как копировать файлы с одного сервера на другой находясь на третем.
[email protected] [/]# scp [email protected]:/home/file1.zip [email protected]:/home2/
после ввода у вас запросит пароль к удаленным серверам.
[email protected]’s password:
[email protected]’s password:
т.е. мы скопируем с одного удаленного сервера (192.168.0.1) файл /home/file1.zip на другой удаленный сервере (192.168.0.2) в папку /home2/
находясь на третем сервере (192.168.0.3). Можно копировать файлы а так же и папки, используя параметр -r
Это конечно мало кому понадобится 🙂 но такое возможно.
-r – рекурсивное копирование папок (включая подкаталоги);
-P port – использовать нестандартный порт (по умолчанию 22) – этот параметр следует использовать, если сервер ожидает соединения на нестандартном порту. Этот параметр может быть полезен при соединении из сети, защищенной файрволлом. Запуск SSH-сервера на порту 443 (используемом для защищенных HTTP-соединений) — это лучший способ обойти ограничения, установленные сетевым администратором.