A solução do Fabricio é a que funcionou
ssh r...@${vetor[$zero]} "df && echo && free -m && echo"
Porém eu aconselho fortemente substituir o "&&" por " ;", pois usando o
&& se um comando der errado os outros não são executados.
Veja os exemplos:
# Com todos os comando executados com sucesso e usando "&&"
l...@lbw-laptop:~/tmp$ ssh [email protected] "df && echo && free -m && echo"
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 29753588 7312640 20905136 26% /
/dev/sda4 167662204 78348136 80659856 50% /var
/dev/sda1 101086 17781 78086 19% /boot
tmpfs 4087008 0 4087008 0% /dev/shm
total used free shared buffers cached
Mem: 7982 7924 57 0 373 6541
-/+ buffers/cache: 1010 6972
Swap: 8997 0 8997
# Com o df passando um argumento inválido e usando "&&"
l...@lbw-laptop:~/tmp$ ssh [email protected] "df --naoexiste && echo &&
free -m && echo"
df: unrecognized option `--naoexiste'
Try `df --help' for more information.
l...@lbw-laptop:~/tmp$
# O mesmo de cima mas usando o ";"
l...@lbw-laptop:~/tmp$ ssh [email protected] "df --naoexiste ; echo ; free
-m ; echo"
total used free shared buffers cached
Mem: 7982 7937 45 0 373 6540
-/+ buffers/cache: 1023 6958
Swap: 8997 0 8997
df: unrecognized option `--naoexiste'
Try `df --help' for more information.
l...@lbw-laptop:~/tmp$
Pegou a questão?
Thiago Diniz da Silveira escreveu:
> Bom.. até agora não sei qual solução funcionou..
>
> foi colocar os comandos ao lado do comando do ssh? a primeira solução
> proposta?
>
> Também acho que deve ter jeito mais fácil e/ou pronto para fazer isso que
> ele quer.
>
> Em 27 de maio de 2010 15:24, Lawrence Waclawiak
> <[email protected]>escreveu:
>
>
>> Sua solução funcionou para mim.
>>
>> Adicionalmente se não for possivel utilizar as chaves para não pedir
>> senha pode-se usar um progrma chamado sshpass para passar a senha para o
>> ssh, utilizo isso para disparar comandos para várias maquinas que
>> administro
>>
>> Fabricio Candido escreveu:
>>
>>
>>> Luiz, bom dia.
>>>
>>> Isso nao seria bem shell mas como vc esta usando ssh, Uma sugestão: mude
>>> as linhas:
>>>
>>> ssh r...@${vetor[$zero]}
>>> df && echo && free -m && echo
>>> exit
>>>
>>> por:
>>>
>>> ssh r...@${vetor[$zero]} "df && echo && free -m && echo"
>>>
>>>
>>> Att.
>>>
>>> Fabricio Candido
>>>
>>> 2010/5/27 Luiz guilherme Nunes Fernandes
>>> <[email protected]<spinal_df%40yahoo.com.br>
>>>
>>>
>>>
>>>
>>>> Prezados, tudo bem?
>>>>
>>>> Estou com o seguinte problema, montei um script, que não funciona
>>>> corretamente, gostaria que ele fizessse conexão ssh entre umas 100
>>>>
>> máquinas
>>
>>>> aproximadamente. Dentro dos vetores eu iria adicionando os ips de minha
>>>> rede, os servidores já possuem chaves assimétricas. Gostaria que ele
>>>> conectasse um por um deles e desconectassem, como seria para eu
>>>>
>> desconectar
>>
>>>> no servidor com o próprio script na máquina local. Quando ele se conecta
>>>>
>> ao
>>
>>>> primeiro ip, ele não fecha a coneção do ssh.
>>>>
>>>> #!/bin/bash
>>>>
>>>> #Desenvolvido por Luiz Guilherme Nunes Fernandes
>>>>
>>>> rddez="10.10."
>>>> rdcnd="192.168."
>>>>
>>>> #Rede 10.10.0.0
>>>> vetor=("$rddez"190.10 "$rddez"190.12)
>>>>
>>>> #Rede 192.168.0.0
>>>> array=("$rdcnd"10.2 "$rdcnd"10.3)
>>>>
>>>> echo "###############"
>>>>
>>>> ################################
>>>> ########## Rede 10.10 ##########
>>>> ################################
>>>>
>>>> cont=${#vetor[*]}
>>>> zero=0
>>>> while [ $zero -lt $cont ]; do
>>>> echo ${vetor[$zero]}
>>>> ssh r...@${vetor[$zero]}
>>>> df && echo && free -m && echo
>>>> exit
>>>> zero=$[zero + 1]
>>>> echo "###############"
>>>> done
>>>>
>>>> ################################
>>>> ######### Rede 192.168 #########
>>>> ################################
>>>>
>>>> contt=${#array[*]}
>>>> inicial=0
>>>> while [ $inicial -lt $contt ]; do
>>>> echo ${array[$inicial]}
>>>> ssh r...@{array[$inicial]}
>>>> df && echo && free -m && echo
>>>> exit
>>>> inicial=$[inicial + 1]
>>>> echo "###############"
>>>> done
>>>>
>>>> Att.
>>>> Luiz Guilherme Nunes Fernandes
>>>>
>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>
>>>>
>>>>
>>>>
>>>>
>>> [As partes desta mensagem que não continham texto foram removidas]
>>>
>>>
>>>
>>> ------------------------------------
>>>
>>> ----------------------------------------------------------
>>> Esta lista não admite a abordagem de outras liguagens de programação,
>>>
>> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
>> prévio aviso.
>>
>>> ----------------------------------------------------------
>>> Sair da lista:
>>> [email protected]<shell-script-unsubscribe%40yahoogrupos.com.br>
>>> ----------------------------------------------------------
>>> Esta lista é moderada de acordo com o previsto em
>>>
>> http://www.listas-discussao.cjb.net
>>
>>> ----------------------------------------------------------
>>> Servidor Newsgroup da lista: news.gmane.org
>>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>>
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [email protected]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>
>