A solução do Fabricio é a que funcionou
ssh root@${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 "&&"
lbw@lbw-laptop:~/tmp$ ssh root@10.10.50.14 "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 "&&"
lbw@lbw-laptop:~/tmp$ ssh root@10.10.50.14 "df --naoexiste && echo &&
free -m && echo"
df: unrecognized option `--naoexiste'
Try `df --help' for more information.
lbw@lbw-laptop:~/tmp$
# O mesmo de cima mas usando o ";"
lbw@lbw-laptop:~/tmp$ ssh root@10.10.50.14 "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.
lbw@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
<address@hidden>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 root@${vetor[$zero]}
df && echo && free -m && echo
exit
por:
ssh root@${vetor[$zero]} "df && echo && free -m && echo"
Att.
Fabricio Candido
2010/5/27 Luiz guilherme Nunes Fernandes
<address@hidden<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 root@${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 root@{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:
address@hidden<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: address@hidden
---------------------------------------------------------------------
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