Execução remota com SSH e HERE DOCUMENTS descomplicada
Publicado por Andre Miguel (última atualização em 08/12/2009)
[ Hits: 5.313 ]
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
configurar do samba e pureftpd
Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Script para checagem de Ponto de Acesso.
Backup completo e automatizado da base de dados do ZODB
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba