Передать файл по SSH с помощью SCP в Linux

  • Михаил
  • 12 мин. на прочтение
  • 88
  • 20 Jun 2022
  • 20 Jun 2022

Через SSH протокол можно не только выполнять команды на удалённом сервере, но и скачивать/закачивать файлы. Для этого можно воспользоваться утилитой scp.

 

Скачивание с сервера

Для скачивания файла через ssh с сервер а необходимо воспользоваться утилитой scp. Команда будет выглядеть так:

scpuser@ip:/папка_откуда/файл /папка_куда/

Вместо "user" и ip надо поставить имя пользователя и ip адрес сервера, с которого необходимо скачать файл.

Вместо "/папка_откуда/файл" надо поставить путь к файлу на удалённом сервере. А вместо "/папка_куда/" поставить путь к папке на локальном компьютере, куда будет сохранён файл.

Если вместо определённого имени файла поставить ключ "-r" тогда будут скопированы все файлы из папки. Если задать ключ "С", то при передаче буде срабатывать компрессия, что ускорит загрузку. В итоге, команда для копирования всех файлов с удалённого сервера на локальную машину будет выглядеть так:

scp -rCuser@ip:/папка_откуда/ /папка_куда/

Закачивание на сервер

Для закачивания файла на сервер в команде сначала необходимо указать путь к файлу (далее в команде "путь_к_файлу") на локальном компьютере:

scpпуть_к_файлуuser@ip:/папка_откуда/файл

Вместо "путь_к_файлу" надо поставить путь к файлу, который будет скопирован с локального компьютера на сервер.

 

Передача файлов между серверами

Хоть ранее и было сказаны слова про "локальную машину", но использовать команду можно для скачивания и загрузки файлов между удалёнными серверами без передачи себе на компьютер. То есть можно зайти по SSH на один сервер и скачать файл на него с другого сервера через SCP.

Ограничение скорости

У команды SCP есть ключ "l", после которого можно указать ограничение скорости операции. К сожалению, точного значения в битах/байтах задать нельзя. Можно только методом подбора выставить нужную величину. К примеру. Если написать значение в "30000" так:

scp -l 30000 -r user@ip:/папка_откуда/ /папка_куда/

Тогда скорость будет ограничена примерно ~3.7 мегабайт в секунду. Далее изменяя это значение можно подобрать необходимую скорость загрузки.

Скачивание с сервера

scpuser@ip:/папка_откуда/файл /папка_куда/

scp -rC root@10.10.11.18:/etc/letsencrypt/live/. /etc/nginx/cert/

Закачивание на сервер

Все файлы из папки, ключ –r

scp путь_к_файлуuser@ip:/папка_откуда/файл
scp -r /etc/letsencrypt/live/. root@10.10.11.16:/etc/nginx/cert/
scp -r -P 1022 /etc/asterisk/. root@92.100.201.85:/etc/asterisk/new/