como encerrar outros computadores usando seus IPs no shell script [closed]

3

comando para desligar a coleção de servidores por IP em tempo específico pelo shell script "usando o comando ssh"

    
por Gofran 22.11.2014 / 20:47

2 respostas

2

Esse comando fará com que seu computador seja desligado.

$ ssh user@remote_computer sudo poweroff

Você deve notar que esses dois comandos solicitarão uma senha duas vezes. Para não pedir uma senha, você deve copiar a chave ssh para o seu computador remoto. E tornar o comando poweroff acessível por usuário não root.

Para usar uma lista de servidores, você pode usar algo assim:

#!/bin/bash

$servers="server1 server2 server3"

for server in $servers
do
    ssh user@$server sudo poweroff
done

A melhor opção para fazer isso em um horário específico é agendar o script no cron.

    
por 22.11.2014 / 21:00
0

Se você tiver muitos servidores e quiser desligá-los todos em paralelo, mas ao mesmo tempo você deseja limitar o número de servidores que são desligados ao mesmo tempo para limitar o consumo de CPU para criptografia ssh e para limitando o número de conexões de rede de saída, você poderia usar um Makefile em vez de um script de shell.

Poderia ser assim:

SERVERS:=server1 server2 server3

.PHONY: shutdown
shutdown: $(addsuffix +shutdown,$(SERVERS))

%+shutdown:
        ssh user@$* sudo poweroff

Você pode executar isso usando, por exemplo, make -j 20 para encerrar vários servidores paralelamente, limitando-os a um máximo de 20 por vez.

    
por 22.11.2014 / 21:12

Tags