Qual é a melhor maneira de o Windows gerenciar várias sessões ssh (via putty?) para examinar servidores em cluster?

1

Existe uma ferramenta chamada cssh para linux que tem uso simular ao que eu gostaria de ter no Windows. Basicamente eu estou logando em servidores que são idênticos uns aos outros e eu gostaria de poder digitar a mesma coisa em ambas as janelas ao mesmo tempo para olhar para logs, fazer vários greps, etc.

    
por Alex Argo 04.08.2010 / 16:43

5 respostas

5

O

PuTTY Command Sender é o que você está procurando.

    
por 04.08.2010 / 17:06
3

Eu sei que essa é uma pergunta antiga, mas eu a descobri porque uso o Putty Command Sender há cerca de cinco anos e sempre achei que era bem terrível. Eu não usei o suficiente para procurar alternativas até agora. Acabei de encontrar o puttyCluster - link - e o sagrado sht, é irreal, eu tenho perdido tempo com o estúpido Putty CS e é inabilidade para usar janelas maximizadas + "ancoradas".

Também encontrou essas alternativas, mas não as experimentou: cputty clustershish (Eu não tenho o representante para postar mais links, mas apenas google deles).

    
por 14.07.2016 / 20:52
2

Você sempre pode instalar clusterssh via CygWin (um shell compatível com UNIX para Windows) ... (você pode pesquisar no Google para obter mais informações sobre os dois) ...

    
por 04.08.2010 / 16:51
1

Eu descobri recentemente uma maneira de fazer isso facilmente. Eu usei uma planilha do Excel para criar comandos cmd, incluindo o login do putty ssh e depois copie as colunas em uma janela cmd. funciona como mágica, mesmo que você tenha que personalizar o comando para cada servidor.

cmd Command         ip          user name           password            Command template

echo  /snmp set enabled=yes >temp.10.0.9.txt| putty -ssh [email protected] -pw passwd -m temp.10.0.9.txt        10.10.0.9           user_name           passwd      /snmp set enabled=yes

echo  /snmp set enabled=yes >temp.10.0.31.txt| putty -ssh [email protected] -pw passwd2 -m temp.10.0.31.txt   10.10.0.31          user_name2                  passwd2     /snmp set enabled=yes

se você quiser executar a lista de comandos exata em cada máquina, salve-a em um arquivo e use outra folha para gerar o lote da linha de comando.

cmd Command         ip          user name           password
putty -ssh [email protected] -pw paaswd -m commands.txt          192.168.0.21          user_name           paaswd
putty -ssh [email protected] -pw paaswd -m commands.txt                192.168.0.22        user_name           paaswd

você precisará criar uma pasta chamada temp dentro da pasta principal putty e talvez seja necessário personalizar o registro de putty para salvar um arquivo por sessão ip ou pear. este é o meu primeiro post aqui, então não consigo fazer upload de imagens.

    
por 21.09.2012 / 06:32
1

Além de usar clusterssh ou mtputty, um simples script bash pode acessar uma lista de servidores remotos usando ssh, copiar um arquivo para cada um usando scp e executar um script em cada um dos servidores. Eu sou um novato bash scripting, provavelmente não a opção mais eficiente ou melhor, mas parece ser muito fácil de gerenciar. Eu achei mais fácil que clusterssh e mtputty. Salve este código em um arquivo chamado copyFileToServers.sh, crie um arquivo de lista de servidores que tenha uma lista de ips ou nomes de servidores e execute digitando ./copyFileToServers.sh .

Você precisará do cygwin no Windows (que é o único lugar em que testei isso). Você terá que instalar o sshpass (eu sei que as pessoas realmente odeiam este pacote, mas eu estava com preguiça de colocar chaves ssh em todos os servidores) separadamente, que pode ser baixado do sourceforge.

Uma coisa a notar, você terá que fazer o login usando ssh user@remomte_server da linha de comando da sua máquina de administração para cada servidor que você deseja gerenciar. O sshpass não funciona até que você reconheça manualmente a adição da chave ssh para os servidores remotos. Você só precisa fazer isso uma vez.

(nota: eu não consegui executar clusterssh rodando no windows cygwin em julho de 2014, então eu não consegui falar sobre quão bom / ruim o programa é em realizar o que o OP pediu).

HOSTS=./serverlist
echo "what file should be copied to the remote servers?"
read file
echo "where should the file be placed on each remote server?"
read dest
echo "what script should be run on all remote nodes?"
read remoteScript
while read line

do
        if [ "${#file}" -gt 0 ] 
    then 
        sshpass -p 'password' scp $file root@$line:$dest 
    else 
        echo "skipping file copy" 
    fi
    if [ "${#remoteScript}" -gt 0 ] 
    then 
        sshpass -p 'password' ssh root@$line 'bash -s' < $remoteScript 
    else 
        echo "skipping remoteScript execution" 
    fi
    echo $line
done < $HOSTS
    
por 20.07.2014 / 06:00