Примеры использования scp в linux

30 июля, 2022 15:09
Admin
30 июля, 2022 15:39

Рассмотрим как использовать команду scp (Secure Copy Command). С помощью нее можно скопировать файлы или каталоги между двумя машинами. А поскольку данные и пароль шифруются при передаче, это не позволит злоумышленнику перехватить ваш трафик. Чтобы была возможность передавать файлы с помощью данной утилиты необходимо, чтобы на сервере был включен ssh доступ, поэтому потребуется знать логин и пароль (или иметь настроенный для входа ssh ключ) для доступа на сервер.

Синтаксис команды SCP

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

$ scp options user1@host1:file user2@host2:file

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

  • -1 – использовать протокол SSH1
  • -2 – использовать протокол SSH2
  • -P – порт удаленного хоста
  • -C – включить сжатие
  • -l – установить ограничение скорости в кбит/сек
  • -o – задать нужную опцию SSH
  • -p – сохранять время модификации
  • -r – рекурсивное копирование директорий
  • -v – более подробный режим

Примеры копирования файлов с локальной машины на удаленную

Следующая команда копирует файл с локальной машины на удаленную:

$ scp file.txt username@example.ru:/remote/directory/

Здесь файл file.txt из текущей директории будет передан на удаленную машину. В качестве имени пользователя для удаленной машины будет использоваться username, в качестве хоста example.ru (можно также использовать ip адрес), /remote/directory/ путь до папки на удаленной машине.

Если вход на сервер настроен по паролю, потребуется его ввести при выполнении команды.

Для сохранения файла под другим именем требуется указать полный путь к файлу на удаленной машине:

$ scp file.txt username@10.0.0.1:/remote/directory/filename.txt

Если используется другой ssh порт, можно использовать опцию -P:

$ scp -P 20223 file.txt username@example.ru:/remote/directory/filename.txt

Полностью скопировать папку:

$ scp -r /local/directory username@example.ru:/remote/directory/

Опция -r указывает на рекурсивное копирование директории.

Примеры копирования файлов с удаленной машины на локальную

Чтобы скачать с удаленной машины файл или папку на локальную, необходимо указать адрес локальной машины в качестве источника:

$ scp username@example.ru:/remote/directory/filename.txt /local/directory

С помощью данной команды мы скачаем файл filename.txt в папку /local/directory на нашем компьютере.

Примеры копирования файлов с удаленной машины на другую удаленную машину

Чтобы выполнить передачу файла с одной удаленной машины на другую, можем воспользоваться следующей командой:

$ scp user1@host1.ru:/directory/file.txt user2@host2.ru:/directory/

При передаче файлов между двумя удаленными машинами, при выполнении команды, пароль будет запрошен дважды.