Execução remota com SSH e HERE DOCUMENTS descomplicada
Publicado por Andre Miguel (última atualização em 08/12/2009)
[ Hits: 5.723 ]
Tive um problema para executar shell scripts desenvolvidos em BASH script em máquinas remotas, pois o usuário utilizado tinha como shell padrão o C Shell ou o Korn Shell.
Para fazer isso, utilizei conexão SSH, via chave já configurada, evitando ter que recolocar a senha, e o recurso de HERE DOCUMENTS do BASH. Também lancei mão da funcionalidade de "||", que significa que se o comando anterior executado retornou erro, faça outra coisa.
Nesse caso em específico, eu tinha uma série de servidores em que o mesmo arquivo Perl (mesmo conteúdo, mesma finalidade), tinha nomes ligeiramente diferentes e versões velhas e desatualizadas (muita gente pondo a mão, se é que você me entende...).
Ex:
$ runall.pl
e
$ runalls2.pl
Veja abaixo que o recurso de "||" me serviu para saber qual dos dois Perl scripts eu deveria executar.
O script abaixo foi desenvolvido em BASH para "adiantar o serviço" de administrador de sistemas. É claro que há maneiras diferentes de se fazer, mas vale a dica. Ele está do jeito exato que está no arquivo, com <ENTER> dado no lugar mais apropriado para sua execução, apenas alterei nomes de programas e diretórios.
#/bin/bash cd ~/script for i in `cat servers.list`; do ssh $i "bash -c \"`cat <<-EOF ((~/run*2.pl; ~/run*2.pl out) || (~/run*.pl; ~/run*.pl out)) 2>/dev/null |strings; EOF`\""; for j in $(ssh $i "bash -c \"`cat <<-EOF ((~/run*2.pl; ~/run*2.pl out) || (~/run*.pl; ~/run*.pl out)) 2>/dev/null |strings |grep location |cut -d '|' -f 2 EOF`\""); do ssh $i "cat $j/../settings/programs/running; echo"; done |sort -u; echo -e "\n\n"; done
Script em shell do artigo: Implementando a segurança em servicos de acesso remoto
Script para autenticar usuario ip fixo speedy
Script para criar certificados de forma automatizada no OpenVpn
Script para checagem de Ponto de Acesso.
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Pendrive Bootable [RESOLVIDO] (4)
Desenvolvi um programa de hot corner (você colocar o mouse nos cantos)... (2)









