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.
40 lines
1.1 KiB
40 lines
1.1 KiB
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()
|
|
|