35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
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="")
|