06 марта 2018

Linux: 12 примеров использования SCP для передачи файлов
06 марта 2018

Linux: 12 примеров использования SCP для передачи файлов

SCP - это инструмент командного интерпретатора для копирования и передачи файлов между хостами, использующий в качестве транспорта SSH. Утилита удаленного копирования scp входит в состав пакета openssh. По умолчанию, утилита scp предустановлена практически в любом Linux дистрибутиве. В дистрибутивах ubuntu/debian, scp являются частью пакета openssh-client.

Базовый синтаксис достаточно простой:
scp source_file_path destination_file_path


В зависимости от хоста, путь должен включать полный адрес, порт, имя пользователя, пароль и полный путь до директории. Если вы посылайте файл с вашей локального компьютера на удаленный, то синтаксис будет выглядеть так:
scp ~/my_local_file.txt user@remote_host:/path/to/directory


Если вы хотите скопировать файл с удаленной машины на свой ПК, используйте такой синтаксис:
scp user@remote_host:/path/to/file.txt ~/my_local_file.txt

# Просто скачать файл
$ scp user@remote_host:/path/to/file.txt .


По умолчанию, scp всегда будет перезаписать существующие файлы.

01. Подробный вывод о копировании
Подробный вывод выводит полную информацию о копировании, которая может полезна для анализа каких-либо ошибок запроса.
scp -v ~/Documents/sample.txt rtfm@192.168.100.30:~/Downloads/sample.txt
Executing: program /usr/bin/ssh host 192.168.100.30, user rtfm, command scp -v -t ~/Downloads/sample.txt
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.100.30 [192.168.100.30] port 22.
debug1: Connection established.
..... OUTPUT TRUNCATED


02. Передача нескольких файлов
scp foo.txt bar.txt user@remote_host:/path/to/directory/


03. Копирования текущей директории (рекурсивно)
scp -v -r ~/Downloads user@remote_host:~/Downloads


04. Копирование файла с одного удаленного хоста на другой удаленный хост
scp user_1@remote_host1:/path/to/file.txt user_2@remote_host2:/path/to/directory/


05. Ускорить передачу с компрессией
scp -vrC ~/Downloads user@remote_host:~/Downloads


06. Ограничение скорости передачи
scp -vrC -l 350 ~/Downloads user@remote_host:~/Downloads


07. Подключение к другому порту (2222) удаленного хоста
scp -vC -P 2222 ~/file.txt user@remote_host:/path/to/file.txt


08. Копирование с сохранением атрибутов файла
scp -C -p ~/file.txt user@remote_host:/path/to/file.txt


09. Копирование в режиме Quiet mode
scp -vCq ~/file.txt user@remote_host:/path/to/file.txt


10. Копирование с указанием удостоверяющего файла
scp -vCq -i private_key.pem ~/file.txt host@remote_host:/path/to/file.txt


11. Копирование с указанием другого ssh_config файла
scp -vC -F /home/user/my_ssh_config ~/file.txt host@remote_host:/path/to/file.txt


12. Копирование с использованием измененного шифрования
scp -c blowfish -C ~/file.txt host@remote_host:/path/to/file.txt