Execução remota com SSH e HERE DOCUMENTS descomplicada

Publicado por Andre Miguel (última atualização em 08/12/2009)

[ Hits: 5.440 ]

Download runtodas.sh




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.

  



Esconder código-fonte

#/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

Scripts recomendados

Sincronizar arquivos com rsync

Automatizando a instalação do BLAS/LAPACK no Linux

Script q ue cria uma galeria de imagens

Menu para servidor LDAP

Firewall iptables


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts