Você pode scp
um arquivo para vários locais no mesmo comando?
Por exemplo:
scp file.txt [email protected]:, [email protected]:
Ou seria mais prático criar um script bash que já contenha todos os hosts e que apenas pegaria um arquivo como argumento?
linux
file-transfer
scp
Andrew
fonte
fonte
for
-loop emwhile read dest; do
, lerá da entrada padrão. Coloque em um script e alimente odestfile.txt
nele (por exemplo,./thescript.sh <destfile.txt
).Parece um trabalho para scp paralelo n) (t) - isso implementa um conjunto de comandos que permitem que os comandos scp sejam executados em vários sistemas de uma só vez. Isso permitirá a cópia de arquivos em paralelo a um conjunto de máquinas.
fonte
fonte
Outra alternativa (e one-liner) seria usar o pdsh para se conectar a cada nó de destino e acionar um get a partir daí:
Isso, obviamente, requer mais uma informação (o host local) e direitos de usuário diferentes, mas você evita dar um loop no bash e usar indiretamente para ler o arquivo.
fonte
Aqui está outra opção, com um script de shell de uma linha.
Ele usa dois arquivos, um para o loop e outro para a lista de hosts do servidor. Lê
$1
para o primeiro parâmetro da CLI como o nome do arquivo para o SCPcscp.sh
hosts.txt
Uso
Copiar arquivo para vários hosts:
fonte