
Estou tentando criar um script bash que enviará um script para um servidor remoto, ssh (usando uma chave ssh que já está instalada) para o servidor remoto, executará o script carregado e excluirá o script remoto quando terminar. Não sei como executar uma sessão ssh dentro de um script bash. Aqui estão os comandos que uso para fazer isso na linha de comando:
scp my_script.sh [email protected]:/usr/home/user/
ssh [email protected]
>sh my_script.sh
>rm myscript.sh
>exit
Como faço o script da parte ssh da minha lista de comandos? Obrigado!
Responder1
ssh executará comandos passados como argumentos na máquina remota. O seguinte deve fazer o que você deseja:
ssh [email protected] 'sh my_script.sh; rm my_script.sh'
Responder2
Você também pode pular a cópia e exclusão do arquivo e fazer algo assim.
cat my_script.sh | ssh user@host bash
Responder3
Você também pode investigar o uso do Fabric, uma biblioteca Python para administração de sistemas via SSH:
http://docs.fabfile.org/0.9.1/
É super simples de começar, mas muito poderoso, especialmente em vários servidores.