PuTTY Command Sender é o que você está procurando.
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.
PuTTY Command Sender é o que você está procurando.
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).
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) ...
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.
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