SSH no shell script.

1. SSH no shell script.

tiago gobbo
tiagogobbo

(usa Debian)

Enviado em 05/02/2021 - 20:10h

Olá pessoa, estou precisando executar comandos ssh em um roteador, porém dentro do comando contem as variáveis do script. alguém sabe me dizer como enviar as variáveis resolvidas?


#!/bin/bash
qinqopt=qinq
ppopt="8021p 0"
echo "digite a vlan"
read vlan
case $vlan in
[0-4094]*) echo "ok";;
*) echo "opção inválida. FAÇA COM ATENÇÃO "
exit
esac
echo "a vlan possui qinq?(s/n)"
read resp
case $resp in
s)
echo "digite a qinq vlan"
read qinq;;
n) echo "ok"
qinqopt=""
ppopt="";;
*) echo "opcao invalida"
exit
esac
echo "digite a description"
read desc
echo "digite o isp domain (ex:01)"
read ispd
ssh [email protected]@10.207.32.2 -p 3281 'interface Eth-Trunk21.'$qinq$vlan
'description '$desc
'ipv6 enable
ipv6 address auto link-local
statistic enable
'$ppopt
'user-vlan '$vlan $qinqopt $qinq
'pppoe-server bind Virtual-Template 1
ipv6 nd ra max-interval 15
ipv6 nd ra min-interval 10
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
ipv6 nd stale-timeout 1200
bas
#
access-type layer2-subscriber default-domain authentication ispdomain-$ispd
#




  


2. Re: SSH no shell script.

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 05/02/2021 - 21:16h


tiagogobbo escreveu:

Olá pessoa, estou precisando executar comandos ssh em um roteador, porém dentro do comando contem as variáveis do script. alguém sabe me dizer como enviar as variáveis resolvidas?


#!/bin/bash
qinqopt=qinq
ppopt="8021p 0"
echo "digite a vlan"
read vlan
case $vlan in
[0-4094]*) echo "ok";;
*) echo "opção inválida. FAÇA COM ATENÇÃO "
exit
esac
echo "a vlan possui qinq?(s/n)"
read resp
case $resp in
s)
echo "digite a qinq vlan"
read qinq;;
n) echo "ok"
qinqopt=""
ppopt="";;
*) echo "opcao invalida"
exit
esac
echo "digite a description"
read desc
echo "digite o isp domain (ex:01)"
read ispd
ssh [email protected]@10.207.32.2 -p 3281 'interface Eth-Trunk21.'$qinq$vlan
'description '$desc
'ipv6 enable
ipv6 address auto link-local
statistic enable
'$ppopt
'user-vlan '$vlan $qinqopt $qinq
'pppoe-server bind Virtual-Template 1
ipv6 nd ra max-interval 15
ipv6 nd ra min-interval 10
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
ipv6 nd stale-timeout 1200
bas
#
access-type layer2-subscriber default-domain authentication ispdomain-$ispd
#



mais ou menos isso ?

echo -e "'
interface Eth-Trunk21.'$qinq$vlandescription '$desc \n
ipv6 enable \n
ipv6 address auto link-local \n
statistic enable \n
$ppopt \n
user-vlan '$vlan $qinqopt $qinq \n
pppoe-server bind Virtual-Template 1 \n
ipv6 nd ra max-interval 15 \n
ipv6 nd ra min-interval 10 \n
ipv6 nd autoconfig managed-address-flag \n
ipv6 nd autoconfig other-flag \n
ipv6 nd stale-timeout 1200 \n
bas \n
# \n
access-type layer2-subscriber default-domain authentication ispdomain-$ispd \n
" | ssh [email protected]@10.207.32.2 -p 3281 /bin/bash


3. Re: SSH no shell script.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/02/2021 - 22:08h


tiagogobbo escreveu:

Olá pessoa, estou precisando executar comandos ssh em um roteador, porém dentro do comando contem as variáveis do script. alguém sabe me dizer como enviar as variáveis resolvidas?


#!/bin/bash
qinqopt=qinq
ppopt="8021p 0"
echo "digite a vlan"
read vlan
case $vlan in
[0-4094]*) echo "ok";;
*) echo "opção inválida. FAÇA COM ATENÇÃO "
exit
esac
echo "a vlan possui qinq?(s/n)"
read resp
case $resp in
s)
echo "digite a qinq vlan"
read qinq;;
n) echo "ok"
qinqopt=""
ppopt="";;
*) echo "opcao invalida"
exit
esac
echo "digite a description"
read desc
echo "digite o isp domain (ex:01)"
read ispd
ssh [email protected]@10.207.32.2 -p 3281 'interface Eth-Trunk21.'$qinq$vlan
'description '$desc
'ipv6 enable
ipv6 address auto link-local
statistic enable
'$ppopt
'user-vlan '$vlan $qinqopt $qinq
'pppoe-server bind Virtual-Template 1
ipv6 nd ra max-interval 15
ipv6 nd ra min-interval 10
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
ipv6 nd stale-timeout 1200
bas
#
access-type layer2-subscriber default-domain authentication ispdomain-$ispd
#


Tiago, boa noite.
Qual é a sintaxe dos comandos no roteador?
Tipo, se executar um a um, como faz?
-----------------------------------------------------
Quanto ao script, fiz alguma observações.
Seguem:
#!/bin/bash
qinqopt="qinq";
ppopt="8021p 0";

read -p "digite a vlan: " vlan
case $vlan in
[0-4094]*) echo "ok";; #ERRO? - P/ validar de "0 a 4094", use: ((${vlan}>0 && ${vlan}<=4094)) && echo ok || { echo -e "Opção inválida.\nATENÇÃO\n";exit 0;}
*) echo -e "Opção inválida.\nFAÇA COM ATENÇÃO\n";exit;;
esac

read -p "A vlan possui qinq?(s/n)" resp #Se resp=[Nn], fica sem a var "qinq"
case $resp in
S|s) read -p "Digite a qinq vlan: " qinq;;
N|n) echo "ok";qinqopt="";ppopt="";;
*) echo "opcao invalida";exit;;
esac

read -p "Digite a description: " desc #Não é validado?
read -p "Digite o isp domain (ex:01): " ispd #Não é validado?
ssh [email protected]@10.207.32.2 -p 3281 'interface Eth-Trunk21.'${qinq}${vlan} #var qinq?
'description '${desc}
'ipv6 enable
ipv6 address auto link-local
statistic enable
'${ppopt}
'user-vlan '${vlan} ${qinqopt} ${qinq} #var qinq?
'pppoe-server bind Virtual-Template 1
ipv6 nd ra max-interval 15
ipv6 nd ra min-interval 10
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
ipv6 nd stale-timeout 1200
bas
#
access-type layer2-subscriber default-domain authentication ispdomain-$ispd
#


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________