Pscp — перенос/копирование файлов на несколько серверов Linux с использованием единой оболочки
Утилита Pscp позволяет передавать/копировать файлы на несколько удаленных серверов Linux с помощью одного терминала с помощью одной команды. Этот инструмент является частью Pssh (Parallel SSH Tools), который предоставляет параллельные версии OpenSSH и других подобных инструментов, таких как:
- pscp – утилита для параллельного копирования файлов на несколько хостов.
- prsync – утилита для эффективного параллельного копирования файлов на несколько хостов.
- pnuke – помогает одновременно завершать процессы на нескольких удаленных хостах.
- pslurp – помогает параллельно копировать файлы с нескольких удаленных хостов на центральный хост.
При работе в сетевой среде, где имеется несколько хостов, системный администратор может найти перечисленные выше инструменты очень полезными.
В этой статье мы рассмотрим несколько полезных примеров утилиты Pscp для передачи/копирования файлов на несколько хостов Linux в сети.
Чтобы использовать инструмент pscp, вам необходимо установить утилиту PSSH в вашей системе Linux. Для установки PSSH вы можете прочитать эту статью.
- Как установить инструмент 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
Объяснение опций, используемых в приведенной выше команде.
- Переключатель -h используется для чтения хостов из заданного файла и местоположения.
- Переключатель -l считывает имя пользователя по умолчанию на всех хостах, которые не определяют конкретного пользователя.
- Переключатель -A сообщает pscp запросить пароль и отправить его по ssh.
- Переключатель -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.