Поиск по сайту:

Pscp — перенос/копирование файлов на несколько серверов Linux с использованием единой оболочки


Утилита Pscp позволяет передавать/копировать файлы на несколько удаленных серверов Linux с помощью одного терминала с помощью одной команды. Этот инструмент является частью Pssh (Parallel SSH Tools), который предоставляет параллельные версии OpenSSH и других подобных инструментов, таких как:

  1. pscp – утилита для параллельного копирования файлов на несколько хостов.
  2. prsync – утилита для эффективного параллельного копирования файлов на несколько хостов.
  3. pnuke – помогает одновременно завершать процессы на нескольких удаленных хостах.
  4. pslurp – помогает параллельно копировать файлы с нескольких удаленных хостов на центральный хост.

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

В этой статье мы рассмотрим несколько полезных примеров утилиты Pscp для передачи/копирования файлов на несколько хостов Linux в сети.

Чтобы использовать инструмент pscp, вам необходимо установить утилиту PSSH в вашей системе Linux. Для установки PSSH вы можете прочитать эту статью.

  1. Как установить инструмент Pssh для выполнения команд на нескольких серверах Linux

Почти все различные параметры, используемые с этими инструментами, одинаковы, за исключением некоторых, которые связаны с конкретными функциями конкретной утилиты.

Как использовать Pscp для передачи/копирования файлов на несколько серверов Linux

При использовании pscp вам необходимо создать отдельный файл, содержащий номер IP-адреса сервера Linux и номер порта SSH, который вам необходим для подключения к серверу.

Копирование файлов на несколько серверов Linux

Давайте создадим новый файл с именем «myscphosts.txt» и добавим список IP-адресов хостов Linux и номер порта SSH (по умолчанию 22), как показано.

192.168.0.3:22
192.168.0.9:22

После того, как вы добавили хосты в файл, пришло время скопировать файлы с локального компьютера на несколько хостов Linux в каталоге /tmp с помощью следующей команды.

pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
Пример вывода
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Объяснение опций, используемых в приведенной выше команде.

  1. Переключатель -h используется для чтения хостов из заданного файла и местоположения.
  2. Переключатель -l считывает имя пользователя по умолчанию на всех хостах, которые не определяют конкретного пользователя.
  3. Переключатель -A сообщает pscp запросить пароль и отправить его по ssh.
  4. Переключатель -v используется для запуска pscp в подробном режиме.

Копирование каталогов на несколько серверов Linux

Если вы хотите скопировать весь каталог, используйте опцию -r, которая рекурсивно скопирует все каталоги, как показано.

pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
Пример вывода
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Вы можете просмотреть страницу ввода вручную для pscp или использовать команду pscp --help для поиска помощи.

Заключение

Этот инструмент стоит попробовать, как если бы вы управляли несколькими системами Linux и уже настроили вход без пароля на основе ключей SSH.