Como posso distribuir um arquivo entre vários sistemas em uma rede?

3

Eu tenho mais de 60 sistemas Ubuntu na minha rede. Eu quero copiar arquivos de um sistema para outros sistemas do Ubuntu. Todos os endereços IP estão listados em um arquivo de texto.

Então, qual comando posso usar para concluir a tarefa? Qualquer programa bash?

    
por karthick87 21.03.2011 / 20:41

3 respostas

3

Suponha que você tenha seus endereços IP em um arquivo chamado ips.txt, cada IP em uma linha. crie um arquivo chamado, por exemplo, * scp_all.sh * e copie o seguinte texto abaixo:

#!/bin/bash

while read LINE ; do
    scp  root@$LINE:
done < ips.txt

execute-o desta forma:

./scp_all.sh /home/yaroo/Desktop/1.jpg

este é um script muito simples, enquanto supõe que seu nome de usuário em todos os computadores é root, ele não armazena senhas e você precisa inseri-las a cada vez, e não possui nenhum manipulador de exceções. Se você quiser alterar o endereço de destino, altere o segundo $ 1 no comando scp com $ 2 e use o script desta forma:

./scp_all.sh /home/yaroo/Desktop/1.jpg /home/yaroo/Downloads/just_copied.jpg

Eu disse que você tem que digitar sua senha para cada computador, mas se você decidiu usar este script regularmente, você pode resolver este problema por esta solução simples de 6 etapas descrita aqui . boa sorte; -)

    
por sazary 21.03.2011 / 21:22
1

Lekensteyn está correto - você provavelmente deve estar puxando os arquivos do servidor, em vez de empurrá-los para os clientes do servidor.

Se você estiver fazendo isso regularmente (especialmente com um grande número de arquivos), eu configuraria rsync ou um sistema de controle de versão como git , ao invés de FTP, para que os clientes tenham que baixar apenas os itens que foram alterados.

    
por J. Taylor 21.03.2011 / 21:16
1

(atualizando de um comentário anterior) Você também pode querer olhar para um sistema de gerenciamento de configuração, como Puppet , bcfg2 ou Chef para gerenciar a distribuição de arquivos em uma rede.

    
por geekosaur 22.03.2011 / 02:59