Executar ssh dentro de um script bash

1. Executar ssh dentro de um script bash

Carlos Vasconcelos
carlosthepi

(usa Debian)

Enviado em 29/07/2015 - 15:38h

Criei um script que é executado em uma máquina linux para derrubar usuários em um mikrotik remotamente (script abaixo).
Ocorre que o script em questão, só executa uma vez e sai do loop, mesmo existindo mais linhas a serem lidas no arquivo lista.txt.
Fiz um teste comentando a linha do comando ssh e coloquei um echo -e .... e "varre" o arquivo lista.txt completo. Ou seja, o problema só ocorre quando executa o comento ssh.

Alguém sabe me dizer como resolver tal questão?

Obrigado.

#!/bin/bash
while read line
do
campo=($line);
ssh -p 1020 -l user-ssh -i /root/.ssh/id_dsa "${campo[1]}" '/ppp active remove [find name='"${campo[0]}"']';
done < lista.txt



  


2. Re: Executar ssh dentro de um script bash

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 29/07/2015 - 16:27h

Olá,

To , meio confuso. posta um exemplo do arquivo.txt e um do comando completo ( como executaria manualmente)

abs,
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


3. Re: Executar ssh dentro de um script bash

Carlos Vasconcelos
carlosthepi

(usa Debian)

Enviado em 29/07/2015 - 16:31h

tonyhts escreveu:

Olá,

To , meio confuso. posta um exemplo do arquivo.txt e um do comando completo ( como executaria manualmente)

abs,
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


Segue exemplo do lista.txt

leticialino@hotmail.com 10.0.2.14
leopoldino@hotmail.com 10.0.2.30
irisvan@hotmail.com 10.0.2.38
bruna@gmail.com 10.0.2.70
nathalia@hotmail.com 10.0.2.70





4. Re: Executar ssh dentro de um script bash

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 29/07/2015 - 16:49h

Entendido.

Acho que o problema são as aspas.

teste assim:

#!/bin/bash
while read line
do
campo=($line)
ssh -p 1020 -l user-ssh -i /root/.ssh/id_dsa $(echo "${campo[1]}") "/ppp active remove [find name='"${campo[0]}"']"
echo 'User "${campo[0]}" removido com sucesso!'
done < lista.txt


EDIT::: Tinha uma aspa simples a mais no meu cod. rs CORRIGIDO

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


5. Re: Executar ssh dentro de um script bash

Carlos Vasconcelos
carlosthepi

(usa Debian)

Enviado em 30/07/2015 - 14:38h

tonyhts escreveu:

Entendido.

Acho que o problema são as aspas.

teste assim:

#!/bin/bash
while read line
do
campo=($line)
ssh -p 1020 -l user-ssh -i /root/.ssh/id_dsa $(echo "${campo[1]}") "/ppp active remove [find name='"${campo[0]}"']"
echo 'User "${campo[0]}" removido com sucesso!'
done < lista.txt


EDIT::: Tinha uma aspa simples a mais no meu cod. rs CORRIGIDO

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---



Olá Tony,

quando executa da forma sugerida, ocorre o seguinte erro:
----
Warning: Identity file /root/.ssh/id_dsa not accessible: Permission denied.
expected name value (line 1 column 31)
Usuario "${campo[1]}" "${campo[0]}"
---

Não creio que o problema seja por conta das aspas, por a linha ser executada normalmente, alinha abaixo também. O que ocorre é que sai do loop, ou seja, executa o comando perfeitamente para a primeira linha de lista.txt. Se tiro a linha do comando ssh, deixo somente a do echo, varre o arquivo lista.txt completo.

[ ]'s







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts