Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

1. Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

Wellington
wellington_r

(usa Debian)

Enviado em 12/05/2016 - 14:18h

Olá, pessoas.

Aqui na empresa temos em torno de 15 estações Linux, todas rodando o Debian 7.
Hoje em dia quando preciso atualizar o sistema, acesso o computador pelo VNC, abro o emulador de terminal e executo o comando, máquina a máquina.

Às vezes também preciso rodar alguns comandos em comum em todos eles (como quando eu tive que compilar wine em todas as máquinas porque a versão do wine que veio com o Debian estava dando problema de instabilidade*). Como temos um diretório do servidor Windows compartilhado entre todos os computadores com Linux, eu coloco os arquivos necessários lá, copie e colo para algum diretório local e executo os comandos pelo terminal (geralmente um script que deixo disponível no diretório compartilhado do servidor Windows).

Mas quero deixar essa tarefa mais prática, então andei pesquisando sobre algumas possíveis soluções para o meu problema, mas eu gostaria de algum outro ponto de vista.

Estou pensando em usar o dsh, mas pelos tutoriais que vi o pessoal executa apenas comandos não-interativos com ele (não estou dizendo que é impossível executar comandos interativos). Será que usar o dsh é a solução mais prática para rodar um comando interativo como apt-get upgrade? O ideal seria um programa que me mostrasse a saída exatamente como se eu estivesse rodando o comando localmente, mas que criasse uma "fila" para que assim que terminasse de atualizar um computador ele já fosse para o próximo.

*na verdade não compilei o wine em todas elas, compilei apenas em uma, gerei um .deb e depois apenas o instalei nas demais


  


2. Re: Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/05/2016 - 15:14h

Cara, a dica q eu dou é colocar uma chave sem senha de SSH (da sua máquina) em todas as estações de trabalho q deseja. Assim, vc pode executar o comando q desejar. Ae vc pode fazer assim (supondo q o usuário da sua chave seja fulano):


ssh fulano@192.168.1.5 "apt-get upgrade"


A partir disto, vc pode fazer um script para rodar todos d uma vez com o for. Suponhamos q exista uma lista de IPs (linha a linha) pelo qual vc queira executar os comandos. Ae vc faz um laço:


for i in `cat lista.txt`
do
ssh fulano@$i "apt-get upgrade"
done


Pronto.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


3. Re: Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

Wellington
wellington_r

(usa Debian)

Enviado em 12/05/2016 - 15:32h

Vou tentar fazer isso, valeu!
Acho que é a forma mais simples.
--------------------------------------------------------------------------------------------------------------------------------------
admin@server:~$ whatis life
life: nothing appropriate



4. Re: Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

5. Re: Rodar o mesmo comando em várias estações Linux (e.g., apt-get upgrade)

Bruno Tonia
brunotonia

(usa Ubuntu)

Enviado em 23/08/2016 - 14:10h

Especificamente pro apt-get desenvolvi um software que permite você instalar/remover pacotes através da rede, além de executar o update, o upgrade e o dist-upgrade, se quiser dar uma olhada tá no github.com/brunotonia/SGSLI-Server e github.com/brunotonia/SGSLI-Cliente






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts