Como desativar várias máquinas linux em um único comando ou script?

1

Eu tenho mais de 10 máquinas Linux. Como posso desligar todas as máquinas usando um único script?

A senha e o usuário são os mesmos para todas as máquinas.

    
por MikePappa 17.10.2017 / 18:05

4 respostas

4

Há muitos mays para fazer isso.

Uma opção é usar pares de chaves ssh em vez de senhas em ssh sem solicitar senha. Então, você pode fazer isso:

#!/bin/bash

for server; do ssh $server 'halt; exit'; done

Uso:

./script.bash server1 server2 1.2.3.4

Ou você pode usar uma abordagem melhor com uma ferramenta como ou pssh

    
por 17.10.2017 / 18:11
2

Tente usar ansible.

Instale ansible:

apt-get install ansible

Adicione o arquivo hosts ao arquivo hosts:

vim /etc/ansible/hosts
server1
server2
server3

Gere a chave ssh e adicione-a em servidores remotos:

ssh-keygen
cat /etc/ansible/hosts | xargs -i ssh-copy-id {}

Execute o encerramento nos servidores:

ansible all -m shell -a "shutdown -h now"

Você pode verificar a disponibilidade dos hosts por comando antes e depois do desligamento:

ansible all -m ping

Source 1 , Fonte 2

    
por 24.10.2017 / 20:43
0

Eu uso tecido ( link ). Você poderia escrever um script python e então executá-lo em sistemas remotos. É rápido e funciona muito bem para mim para administração remota do sistema.

    
por 17.10.2017 / 18:10
0

Configure uma chave ssh para o usuário "shutdown". Se você observar / etc / passwd, o shell padrão deste usuário será / sbin / shutdown. Então, apenas o login irá executar o comando de desligamento.

    
por 24.10.2017 / 20:52