Autor Tópico: Criar uma exceção de IP em comando ssh para desligamento remoto  (Lida 2658 vezes)

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
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:

Citar
http://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.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criar uma exceção de IP em comando ssh para desligamento remoto
« Resposta #1 Online: 20 de Junho de 2012, 12:26 »
Dá pra fazer de várias formas, como é arbitrário fica mais claro um vetor com expansão de chaves
Código: [Selecionar]
#!/bin/bash
range=( {1..9} {11..14} {16..20} )
for i in "${range[@]}"; do
    ssh root@192.168.1."$i" "shutdown -h now"
done