Можете ли вы scp
файл в нескольких местах в одной команде?
Например:
scp file.txt user@ip-1.com:, user@ip2.com:
Или было бы более практичным создать bash-скрипт, в котором уже есть все хосты, и он просто взял бы файл в качестве аргумента?
linux
file-transfer
scp
Эндрю
источник
источник
for
-loop наwhile read dest; do
, он будет читать со стандартного ввода. Поместите это в сценарий и введитеdestfile.txt
в него (например,./thescript.sh <destfile.txt
).Выглядит как задание для Parallels-scp (n) (t) - здесь реализован набор команд, позволяющих запускать команды scp на нескольких системах одновременно. Это позволит копировать файлы параллельно с набором машин.
источник
источник
Другой альтернативой (и однострочником) было бы вместо этого использовать pdsh для подключения к каждому целевому узлу и инициировать получение оттуда:
Это, конечно, требует еще одну информацию (локальный хост) и разные права пользователя, но вы избегаете циклического использования bash и использования косвенного обращения для чтения файла.
источник
Вот еще один вариант, с однострочным сценарием оболочки.
Он использует два файла, один для цикла и один для списка хостов сервера. Он читает
$1
для первого параметра из CLI в качестве имени файла для SCPcscp.sh
HOSTS.TXT
использование
Скопируйте файл на несколько хостов:
источник
Если у вас есть согласованное соглашение об именах для нескольких серверов, вы можете сделать что-то вроде:
источник