python/System_Monitoring_Script/ssh.py

35 lines
1.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import paramiko
'''
思路使用paramiko工具连接服务器并将执行命令的结果返回给程序这里我们使用了sshclient方法\
首先定义类,构造函数中传入了需要用到的属性 账号信息定义op方法实现执行命令功能。
'''
class sshd():
def __init__(self,hostname,passwd,port=22,username='root'): # 定义函数传入连接远程用到的属性
self.ssh = paramiko.SSHClient() # 调用sshclient方法
self.hostname=hostname # 转换属性
self.port = port
self.username = username
self.passwd = passwd
def op(self,cmd):
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在know_hosts里的主机
self.ssh.connect(hostname=self.hostname,
port=self.port,
username=self.username,
password=self.passwd)
stdin, stdout, stderr = self.ssh.exec_command(cmd)
self.stdin = stdin
self.stdout= str(stdout.read(),encoding='utf-8') #将结果返回并解码
self.stderr= str(stderr.read(),encoding='utf-8')
self.ssh.close()
if self.stdout:
return self.stdout
else:
return self.stderr
def __str__(self):
return 'QianFeng cloud computing testing'
if __name__ == '__main__':
aa = sshd(hostname='172.16.147.151',passwd='1')
s = aa.op('ls /root')
print(s,end="")