linux: dados de tubulação para várias máquinas através do ssh

3

Eu tenho alguns terabytes de dados processados por uma ferramenta. A saída da ferramenta deve ser enviada para outras duas máquinas simultaneamente (simultaneamente, porque há tempo de inatividade enquanto a ferramenta é executada e eu quero limitar o tempo de inatividade).

Se eu apenas canalizar de uma máquina, é fácil:

tool terabyte.txt | ssh [email protected] /sbin/process-input

mas como posso enviar os dados para várias máquinas simultaneamente?

Eu não me importo se a situação envolver outro software ou scripts. não precisa ser uma solução "pure ssh".

    
por cruppstahl 13.12.2011 / 10:54

3 respostas

3

Você pode tentar com o ClutterSSH :

With ClusterSSH it is possible to make a SSH connection to multiple servers or machines to perform tasks from one single command window, without any scripting. The ‘cssh’ command lets you connect to any server specified as a command line argument, or to groups of servers (or cluster nodes) defined in a configuration file.

    
por 13.12.2011 / 11:21
4

Você poderia tentar usar tee

tool terabyte.txt | tee >(ssh [email protected] /sbin/process-input) | ssh [email protected] /sbin/process-input
    
por 13.12.2011 / 12:29
2

Talvez, pee de moreutils seja ainda melhor:

pee is like tee but for pipes. Each command is run and fed a copy of the standard input. The output of all commands is sent to stdout.

Então, você pode executar

tool terabyte.txt |pee 'ssh [email protected] /sbin/process-input' 'ssh [email protected] /sbin/process-input'

    
por 13.12.2011 / 13:13

Tags