Usar comandos shell script dentro do Python [RESOLVIDO]

1. Usar comandos shell script dentro do Python [RESOLVIDO]

Paulo Pimenta
paulopimenta6

(usa Debian)

Enviado em 01/08/2017 - 02:32h

Olá pessoal,

Estou automatizando tarefas e sou novo em python, por isso gostaria da ajuda de vocês, pois preciso rodar um shell script em uma outra máquina e este comando eu preciso dar dentro de um código Python. Pensei em usar algo como:

###########################################################################
#!/usr/bin/python
# -*- coding: utf8 -*-
import subprocess

subprocess.call('ssh <user>@<host>', shell=True)
###########################################################################
Mas fica por isso mesmo pois não sei como inputaria o login e a senha (assim como o "yes" da criptografia). Agradeço a todos pela ajuda, desde já.

Um abraço.

Paulo.



  


2. Re: Usar comandos shell script dentro do Python [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/08/2017 - 11:46h

Você pode usar o Paramiko para isso.
Exemplo:

import paramiko

ssh = paramiko.SSHClient()

# O "Yes da Criptografia" que pediu.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Conexão
ssh.connect('127.0.0.1', username='root', password='senha')

# Executar Comando
stdin, stdout, stderr = ssh.exec_command('echo oi\n')

# Imprimir Resposta
print(stdout.readlines())


Para mais informações, deixo aqui a documentação: http://docs.paramiko.org/en/2.2/
__________________________________________
Kernel: 4.12.4 (x86_64 LowLatency)
CPU: i5-2410M 2.9GHz RAM: 7811MiB


3. Re: Usar comandos shell script dentro do Python [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/08/2017 - 11:47h

Você pode usar o Paramiko para isso.
Exemplo:

import paramiko

ssh = paramiko.SSHClient()

# O "Yes da Criptografia" que pediu.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Conexão
ssh.connect('127.0.0.1', username='root', password='senha')

# Executar Comando
stdin, stdout, stderr = ssh.exec_command('echo oi\n')

# Imprimir Resposta
print(stdout.readlines())


Para mais informações, deixo aqui a documentação: http://docs.paramiko.org/en/2.2/
__________________________________________
Kernel: 4.12.4 (x86_64 LowLatency)
CPU: i5-2410M 2.9GHz RAM: 7811MiB


4. Re: Usar comandos shell script dentro do Python

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/08/2017 - 11:49h

Você pode usar o Paramiko para isso.
Exemplo:

import paramiko

ssh = paramiko.SSHClient()

# O "Yes da Criptografia" que pediu.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Conexão
ssh.connect('127.0.0.1', username='root', password='senha')

# Executar Comando
stdin, stdout, stderr = ssh.exec_command('echo oi\n')

# Imprimir Resposta
print(stdout.readlines())


Para mais informações, deixo aqui a documentação: http://docs.paramiko.org/en/2.2/
__________________________________________
Kernel: 4.12.4 (x86_64 LowLatency)
CPU: i5-2410M 2.9GHz RAM: 7811MiB


5. Re: Usar comandos shell script dentro do Python [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 09/08/2017 - 13:42h

Tente com o método call do módulo subprocess:
#!/usr/bin/env python3

from getpass import getpass
from subprocess import call

script = """for ((x=0; x<10;x++)); do
echo $x;
done;"""

commands = "ssh 127.0.0.1 -C {}".format(script)
call(commands.split())



Isso abre uma sessão ssh para 127.0.0.1 e executa os comandos depois fecha a conexão ssh e volta a executar o resto do script python (se ainda existir). Para não ter que ficar digitando senha eu sugiro que crie uma chave de autenticação, que além de mais seguro, te permita uma flexibilidade maior de gerenciamento precisando somente do comando:
ssh [user]@host -C [comando(s)] 



Espero ter ajudado!
______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


6. Re: Usar comandos shell script dentro do Python [RESOLVIDO]

Usuario
USUARIO21

(usa Debian)

Enviado em 09/08/2017 - 13:58h

Acompanhando esse tópico.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts