Scarpetah
(usa Ubuntu)
Enviado em 30/07/2017 - 12:16h
Preciso de ajuda para terminar um script:
Tenho vários servidores terminais que são autenticados por ssh e preciso realizar uma coleta de informações em todos eles;
Ja tenho um arquivo Bash e um expect de conexao;
minha duvida é como pegar este retorno que ira sair na tela e jogar em documentos separados com o nome do Host
CMTS="./acessar.txt" ( Este Doc tem os seguintes dados em lista sequencial
ip.ip.ip.ip,NOME DO HOST #,LOGIN,SENHA,MODELO,VERSAO SSH
# VARIAVEIS para funcionamento do script
CMTS="./acessar.txt"
CONECTA="./loga_cmts.exp"
# Testa se o arquivo acessar.txt existe
if [ ! -e ${CMTS} ]
then
echo "Arquivo 'acessar.txt' não encontrado."
echo "Arquivo 'acessar.txt' não encontrado."
exit 1
fi
# Ler o arquivo ${CMTS} e processar cada linha que contém informações
# acerca da conexão
cat ${CMTS} | while read LINHA
do
# Joga os campos em variáveis
HOST=$(echo ${LINHA} | cut -d',' -f1)
NAMEHOST=$(echo ${LINHA} | cut -d',' -f2)
USERNORMAL=$(echo ${LINHA} | cut -d',' -f3)
USERPASSWD=$(echo ${LINHA} | cut -d',' -f4)
MODELOCMTS=$(echo ${LINHA} | cut -d',' -f5)
VERSSH=$(echo ${LINHA} | cut -d',' -f6)
# Teste sobre repasse das variáveis
#echo ${HOST}
#echo ${NAMEHOST}
#echo ${USERNORMAL}
#echo ${USERPASSWD}
#echo ${USERPASSWD}
#echo ${VERSSH}
# Chama o arquivo expect com os parâmetros coletados
# Testa se o expect existe
if [ ! -e ${CONECTA} ]
then
echo "Arquivo com script expect ${CONECTA} não encontrado"
exit 1
else
# Garantir que o arquivo tenha permissão de execução
# chmod 755 ${CONECTA}
# imprimir na tela o comando que esta sendo executado
#echo "${CONECTA} ${HOST} ${NAMEHOST} ${USERNORMAL} ${USERPASSWD} ${MODELOCMTS} ${VERSSH}"
# executar o script expect com os parametros
${CONECTA} ${HOST} ${NAMEHOST} ${USERNORMAL} ${USERPASSWD} ${MODELOCMTS} ${VERSSH}
fi
done
###############################################################################
## DECLARACAO DE VARIAVEIS
#
set ip [lindex $argv 0]
set nome [lindex $argv 1]
set login [lindex $argv 2]
set senha [lindex $argv 3]
set modelo [lindex $argv 4]
set vssh [lindex $argv 5]
set timeout 5
###
# INICIO DO SISTEMA
###
# NIVEL DE RETORNO DE SAIDA
log_user 3
###############################################################################
## Entrada de Usuario ##
###############################################################################
if { $vssh == "1" } {
spawn /usr/bin/ssh -1 -c des -oStrictHostKeyChecking=no ${ip} -l ${login}
} else {
spawn /usr/bin/ssh -oStrictHostKeyChecking=no ${ip} -l ${login}
}
###############################################################################
# COMANDOS DE ACESSO
expect "sword:"
send "$senha\r"
if { $modelo == "C4" } {
# COMANDOS DE AJUSTE E COLETA
expect "$nome#"
send "show cable modem | include Operational 2.0\r"
} elseif { $modelo == "E6000" } {
# COMANDOS DE AJUSTE E COLETA
expect "$nome#"
send "terminal length 0\r"
expect "$nome#"
send "show cable modem | include Operational 2.0 | exclude 770 | exclude 11M | exclude 16M | exclude 566 | exclude 1100 | exclude 2200\r"
}
# FECHAR CONEXAO
expect "$nome#"
send "logout\r"
# FINALIZA
expect eof