Execução remota com SSH e HERE DOCUMENTS descomplicada
Publicado por Andre Miguel (última atualização em 08/12/2009)
[ Hits: 5.627 ]
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
Monitorando o serviço do Squid utilizando como Proxy Transparente
Detalhes técnicos do processador - CPUINFO
Script para Wireless no Fedora 7 (modelo ipw3945)
Remover kernels antigos com zenity
Nenhum coment�rio foi encontrado.
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware (1)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)