Enviando comandos para máquinas da rede
Publicado por Heros Eloi Souza 29/12/2004
[ Hits: 10.663 ]
A idéia desse script surgiu para suprir a necessidade de executar um comando simultaneamente em várias estações de trabalho Linux ligadas à rede.
#!/bin/bash # # Autor: Heros Eloi (heroseloi@gmail.com) # # Licença: GPL # # para maiores informações leia o script "envia_arquivos.sh" # # Executa comandos remotos nas estações definidas pelo arquivo $LISTA_MAQUINAS # e salva a saida no arquivo $LOG_BOM. # Se a maqiuna naum está disponivel no momento, ela irá reponder com um # "falso" ao comando ping, esta maquina então será inserida no $LOG_RUIM # # A sintaxe é simples: # info_maquina "comando" # Importante o uso de aspas duplas para que sejam protegidos os comandos que # contem ESPAÇO na sua formação. # Exemplo: info_maquina "ls -l /etc" # # Ao Final da execução o Script imprime o relatorio na impressora padrao # instalada pelo CUPS. # # Arquivo de registro bem sucedido LOG_BOM=/mnt/backup/shell/servidor/info_maquinas/acesso.log # # Arquivo de registro mal sucedido LOG_RUIM=/mnt/backup/shell/servidor/info_maquinas/erro.log # # limpa log > $LOG_BOM echo -e "*** *** Comandos executados com sucesso *** ***\n" >> $LOG_BOM > $LOG_RUIM echo -e "### ### Comandos executados sem sucesso ### ###\n" >> $LOG_RUIM # # Arquivo com lista de maquinas LISTA_MAQUINAS=/etc/hosts_ativos # # comando a ser executado remotamente COMANDO1=$1 COMANDO1=`echo ${COMANDO1:="vazio"}` if [ $# > 1 ] then COMANDO2=$2 COMANDO2=`echo ${COMANDO2:="vazio"}` fi # # # funcao que exibe a ajuda do script exibe_ajuda() { echo "sintaxe:" echo "info_maquina <parametro> [comando]" echo "Onde [comando] é o comando que sera executado nas estações" echo " " echo "Parametros:" echo "-p Envia o relatório para a impressora padrao do CUPS" echo "-v Mostra o relatório na tela" echo "-h Mostra esta ajuda" echo " " echo "Para maiores informações, leia o cabeçalho do Script." echo "heroseloi@gmail.com" } # # executa os comandos executa() { echo -e "Comando enviado: $COMANDO2\n\n" >> $LOG_BOM echo "---------------------------------" >> $LOG_BOM echo -e "Comando enviado: $COMANDO2\n\n" >> $LOG_RUIM echo "---------------------------------" >> $LOG_RUIM for MAQUINA in `cat $LISTA_MAQUINAS | awk '{print $1}'` do ping $MAQUINA -c 1 > /dev/null if [ $? == 0 ] then echo "$MAQUINA OK" echo -e "Maquina $MAQUINA\n" >> $LOG_BOM ssh $MAQUINA $COMANDO2 >> $LOG_BOM echo "---------------------------------" >> $LOG_BOM else echo -e "$MAQUINA FALHOU\n" >> $LOG_RUIM echo "---------------------------------" >> $LOG_RUIM fi done } # # imprime os relatorios na impressora padrão do CUPS imprime() { echo "Imprimindo relarorio de acessos..." lpr-cups $LOG_BOM #echo "Imprimindo relarorio de erros..." #lpr-cups $LOG_RUIM } # # exibe o relatorio na tela exibe_relatorio() { less $LOG_BOM clear less $LOG_RUIM } # # funcao principal case $COMANDO1 in "-h") exibe_ajuda;; "-p") executa imprime;; "-v") executa exibe_relatorio;; "vazio") exibe_ajuda;; *) COMANDO2=$COMANDO1 executa;; esac
Correção Bug Kurumin/Som on-boad
Instalação do Layer7 e compilação do kernel (automático)
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalação do Ubuntu 22.04 LTS (1)
Não consigo executar arquivos .jar no linux (4)
Alguns sistemas não estão funcionando adequadamente apos a configuraçã... (0)
Compartilhando uma ideia sobre computação quantica (14)
Programadores e não programadores, uma nova era se inicia... (3)