Zenity Shell Menu para mais de 50 servidores, como ficar no menu do servidor?

1

Eu estou tentando fazer um menu shell zenity para gerenciar mais de 50 servidores e deseja adicionar várias funções personalizadas. por exemplo: - quando o servidor ficar inativo, eu quero ssh nele e, em seguida, marque load, free -m, últimos 10 minutos, logs do apache / nginx, logs do exim, logs de consultas lentas do mysql e muito mais. Eu tenho scripts para todas essas necessidades. Mas eu estou preso aqui, por favor ajude.

esses servidores têm minha chave ssh, então não há problema em fazer ssh.

Estou logando com êxito em servidores, mas a coisa é quando eu entrar no servidor via ssh, o script termina e depois que eu sair para o servidor, eu vem no terminal da minha máquina local sem script, então eu tenho que executar novamente o script para obter o menu do servidor. Por favor, diga-me como posso ficar em loop eu quero dizer como ficar no menu do servidor, em seguida, ssh em qualquer servidor, e quando eu sair do servidor voltar ao menu do servidor.  por favor ajude . Eu quero personalizar mais.

=========== seu pequeno roteiro para lhe dar uma idéia pessoal. meu script original tem todos os servidores ======

#!/bin/bash
dialog --menu "select" 40 40 5 1 server.hades 2 server.fire 3 server.geb 4 server.isis 5 exit 2> /tmp/a
choice='cat /tmp/a'
if [ $choice -eq 1 ]
then
ssh 1.2.3.4
fi
if [ $choice -eq 2 ]
then
ssh 2.3.4.5
fi
if [ $choice -eq 3 ]
then
ssh 2.3.3.5
fi
if [ $choice -eq 4 ]
then
ssh 8.3.4.8
fi
if [ $choice -eq 5 ]
then
echo "BIE BIE"
fi
    
por Navdeep.D2 08.05.2017 / 20:37

1 resposta

0

Parece que você quer rodar o script em algum loop, mas perde o loop. A simples modificação provavelmente será essa modificação:

[... the rest of choices ...]
if [ $choice -eq 5 ]
then
  echo "BYE BYE"
  exit
fi
exec $0

Isso sairá se você escolher a última opção (5), mas, caso contrário, irá reexecutar o próprio script.

Ou apenas adicione um ciclo:

while true;
do
  dialog --menu "select" 40 40 5 1 server.hades 2 server.fire 3 server.geb 4 server.isis 5 exit 2> /tmp/a
  choice='cat /tmp/a'
  if [ $choice -eq 2 ]
  then
    ssh 192.168.187.*
  fi
  [... the rest of choices ...]
  if [ $choice -eq 5 ]
  then
    echo "BIE BIE"
    break
  fi
done

"while" o código funcionou para mim. obrigado.

    
por 08.05.2017 / 20:48