notby.NET Logo

Копирование файлов через SSH (утилита SCP)

Когда необходимо загрузить или скачать несколько файлов с удаленного сервера, не смысла настраивать SFTP и тем более поднимать FTP сервер. Для этих задач существует утилита SCP (secure copy), которая передает файл или каталог через SSH. Утилита похожа по синтаксису на cp.

Копировать файл через SCP

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

Синтаксис команды для копирования файла на сервер выглядит следующим образом:

scp <файл на компьютере> <пользователь>@<IP-адрес>:/<каталог сервера>/<опция: имя файла>

Скопируем файл localfile с компьютера на сервер в домашний каталог пользователя root

scp localfile root@80.95.110.25:~/

Скопируем файл localfile с компьютера на сервер в каталог tmp и сохраним его с именем tempfile

scp localfile root@80.95.110.25:/tmp/tempfile

Если сервер SSH работает на нестандартном порту, указываем порт в параметре -P

scp -P 22 localfile root@80.95.110.25:/tmp/tempfile

Копировать файл с удалённого сервера на локальный компьютер

Синтаксис команды для копирования файла с сервера выглядит следующим образом:

scp <пользователь>@<IP-адрес>:<файл на сервере> /<каталог компьютера>/<опция: имя файла>

Скопируем файл /etc/hosts с сервера на компьютер в домашний каталог пользователя

scp root@80.95.110.25:/etc/hosts ~/

Скопируем файл /etc/hosts с сервера на компьютер в домашний каталог пользователя и сохраним его с именем hosts-server

scp root@80.95.110.25:/etc/hosts /home/user/hosts-server

Если сервер SSH работает на нестандартном порту, указываем порт в параметре -P

scp -P 22 root@80.95.110.25:/etc/hosts ~/hosts-server

Копировать каталог через SCP

Копировать каталог с локального компьютера на удаленный сервер

Синтаксис команды для копирования каталога на сервер выглядит следующим образом:

scp -r <каталог на компьютере>/ <пользователь>@<IP-адрес>:/<каталог сервера>/

Скопируем каталог Pictures с компьютера на сервер в каталог tmp

scp -r Pictures/ root@80.95.110.25:/tmp/

Скопируем содержимое каталога Pictures с компьютера на сервер в каталог /tmp/Temp-Pictures/

scp -r Pictures/ root@80.95.110.25:/tmp/Temp-Pictures

Если каталога Temp-Pictures на сервере не существует, то он будет создан и внутри него будет помещено содержимое Pictures каталога. А если каталог существует, то каталог Pictures будет скопирован в каталог Temp-Pictures (путь будет выглядеть так /tmp/Temp-Pictures/Pictures/).

Копировать каталог с удалённого сервера на локальный компьютер

Синтаксис команды для копирования каталога с сервера выглядит следующим образом:

scp -r <пользователь>@<IP-адрес>:/<каталог сервера>/ <каталог компьютера>/

Скопируем каталог /var/log/ с сервера на компьютер в каталог logs-server

scp -r root@80.95.110.25:/var/log/ /home/user/logs-server/

Если каталога logs-server на компьютере не существует, то он будет создан и внутри него будет помещено содержимое /var/log/ каталога. А если каталог существует, то содержимое /var/log/ будет помещено внутри него в каталог с именем копируемого каталога (/home/user/logs-server/log/).