Criar uma exceção de IP em comando ssh para desligamento remoto

Iniciado por velox256, 20 de Junho de 2012, 10:05

tópico anterior - próximo tópico

velox256

Prezados, criei um script que, da máquina que vai desligar as outras, basta digitar o ip, a senha e a ação que se deseja para que o comando seja montado e enviado. Dentro do link sobre SSH que eu postei aqui:

Citarhttp://ubuntuforum-br.org/index.php/topic,96985.msg533036.html#msg533036

vi o seguinte script:

Citar#! /bin/bash
ip=1
endip=20
until [ $ip -gt $endip ]; do
ssh root@192.168.1.$ip "shutdown -h now"
ip=`expr $ip + 1`
done

Ele cria uma sequência de ips (no caso, de 192.168.1.1 a 192.168.1.20) que serão "ssh-zados" para que as máquinas sejam desligadas. Há alguma maneira dentro desse script de se fazer uma exceção a um ou mais endereços de ip? Por exemplo, usando a sequência mostrada, dentre as 20 máquinas que serão desligadas, gostaria que aquelas cujos ips de final 10 e 15 não fossem desligadas.

Há como?
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

irtigor

Dá pra fazer de várias formas, como é arbitrário fica mais claro um vetor com expansão de chaves

#!/bin/bash
range=( {1..9} {11..14} {16..20} )
for i in "${range[@]}"; do
   ssh root@192.168.1."$i" "shutdown -h now"
done