ssh para um computador, execute um comando e envie o resultado

0

Este é o cenário  Eu tenho um cluster na universidade que não está conectado à Internet.  Eu tenho outro computador conectado à Internet.

Eu quero ssh via computador para cluster e executar um comando e obter resultado e e-mail para que eu possa verificar o status de casa. significa que eu preciso de um script bash que ssh para cluster login com senha e executar um comando e obter resultado e envie-me o resultado.

Obrigado.

    
por sajad abbasi 13.11.2016 / 20:38

1 resposta

0

Eu finalmente poderia fazer isso com um código python:

import paramiko
import time
import os


def touch(path):
    with open(path, 'a'):
        os.utime(path, None)


ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('ip', port=port, username='USER', password='PASS',
            key_filename='OPTIONAL Address to private Key')

baseCommand = "command"
stdin, stdout, stderr = ssh.exec_command('some command')
print(stdout.readlines())
stdin, stdout, stderr = ssh.exec_command(baseCommand + 'ls')
print(stdout.readlines())

#for copy file

localpath = "local paths" + time.strftime("%Y-%m-%d-%H-%M-%S") + ".sql"; # add a date name for file
remotepath = "remote path"
touch(localpath);
sftp.get(remotepath, localpath) # download the file

sftp.close()
ssh.close()
    
por sajad abbasi 29.08.2017 / 05:57