You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
3 years ago
|
import paramiko
|
||
|
class sshd:
|
||
|
def __init__(self,hostname,
|
||
|
passwd,
|
||
|
username='root',
|
||
|
port=22):
|
||
|
self.hostname = hostname
|
||
|
self.passwd = passwd
|
||
|
self.username=username
|
||
|
self.port=port
|
||
|
self.obj=paramiko.Transport((self.hostname,self.port))
|
||
|
self.obj.connect(username=self.username,password=self.passwd)
|
||
|
self.ssh = paramiko.SSHClient()
|
||
|
self.ssh._transport = self.obj
|
||
|
self.sftp=paramiko.SFTPClient.from_transport(self.obj)
|
||
|
def op_ssh(self,cmd):
|
||
|
stdin,stdout,stderr = self.ssh.exec_command(cmd)
|
||
|
stdout = str(stdout.read().decode())
|
||
|
stderr = str(stderr.read().decode())
|
||
|
if stdout:
|
||
|
return stdout
|
||
|
else:
|
||
|
return stderr
|
||
|
def op_ftp_push(self,froms,tos):
|
||
|
self.sftp.put(froms,tos)
|
||
|
return True
|
||
|
def op_ftp_pull(self,froms,tos):
|
||
|
self.sftp.get(froms,tos)
|
||
|
return True
|
||
|
def close(self):
|
||
|
self.sftp.close()
|
||
|
self.obj.close()
|
||
|
def __str__(self):
|
||
|
return 'QianFeng cloud computing testing'
|
||
|
if __name__ == '__main__':
|
||
|
abc = sshd(hostname='127.0.0.1',passwd='123')
|
||
|
s = abc.op_ssh('df -Th')
|
||
|
b = abc.op_ftp_pull('/etc/passwd','/mnt/abc.txt')
|
||
|
print(s,b)
|
||
|
abc.close()
|