Enviando comandos para máquinas da rede
Publicado por Heros Eloi Souza 29/12/2004
[ Hits: 10.477 ]
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
Script de Backup para FITA DAT usando "tar"
Go Script - Inicia sessões ssh
Configuração do VNC Server no Display 0 (terminal que estiver na tela)
Redimensionar e fazer upload de imagens
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando Discord no Debian 12
Instalando e usando o Dconf Editor, o "regedit" para Linux
Sistema da Coréia do Norte - Red Star OS (78)
Jogar jogos do Win 10 no Ubuntu (10)
Erro em no calculo do range de IP em JavaScript (1)