automatizar: localizando servidores não utilizados de uma lista de servidores

2

eu postei isso no estouro da pilha, mas um usuário recomendou postar aqui. desculpe por postagem cruzada:

0 votos para baixo estrela

Eu tenho acesso a alguns clusters de Linux na escola. às vezes eles estão ocupados e às vezes não estão. Eu normalmente faço login em cada máquina manualmente, use o comando "top" para ver se o servidor está ocupado (para ver se ambos os núcleos são usados). a partir daí, eu executo meu programa para usar alguns servidores que estão livres para executar meus cálculos.

O que eu gostaria de fazer é automatizar esse processo com um script. Suponha que eu tenha uma lista de servidores, digamos server1 ... server N. Eu gostaria de logar em cada um desses servidores sequencialmente, executar algum comando (top?) e gerar uma lista de servidores que não são usados (ou gerar a saída dos servidores). dois processos principais, mostrando cpu%, para cada servidor).

qualquer sugestão seria muito apreciada.

    
por Vinh Nguyen 16.12.2009 / 00:35

4 respostas

1

Obrigado pelas sugestões. Aqui está o meu script para qualquer um que esteja interessado:

#! /usr/bin/env bash

out=avail.txt
rm -f "$HOME/$out"
minLoad=1
for h in $(cat "$HOME/listofservers.txt"); do
    ##w | head -1 | cut -d : -f 5 - | cut -d "," -f 2 -
    load='ssh username@$h uptime | cut -d : -f 5 - | cut -d "," -f 2 -'
    comparison='expr $load \< $minLoad'
    if [ comparison ]; then
        echo "$h" >> "$HOME/$out"
        ##echo "$load" >> "$HOME/$out"
    fi
done

PS Nós temos o SGE instalado. No entanto, o que estou fazendo não joga bem com a SGE ainda. Obrigado.

    
por 16.12.2009 / 20:17
1

Bem, eu olharia para usar w em vez de top (retorna a carga do sistema e quem está logado), mas olhe ao redor.

    
por 16.12.2009 / 02:01
0

Instale o mecanismo Sun Grid. Ou Hudson.

    
por 16.12.2009 / 03:28
0

Usando as chaves ssh, você pode fazer algo assim:

for i in server1 server2 server N
 do
       ssh user@$i "uptime" 
 done

O comando Uptime também mostrará a carga da caixa. Você pode usar "top -b 1", "w" ...

Se você precisar de ajuda para configurar chaves ssh, então ssh não pede senha, leia aqui

    
por 16.12.2009 / 15:55