1.利用SFTP远程上传下载文件
# coding=utf-8
import paramiko
class SftpTrans(object):
def __init__(self, host, port, username, password):
self.trans = paramiko.Transport((host, port))
self.connect = self.trans.connect(username=username, password=password)
self.sftp = paramiko.SFTPClient.from_transport(self.trans)
def transFileFromLocal(self, localPath,aimsPath):
self.sftp.put(localPath,aimsPath)
def getFileFromAims(self, localPath, aimsPath):
self.sftp.get(aimsPath, localPath)
def closeStpf(self):
self.trans.close()
# 上传
host = '192.168.142.222'
username = 'root'
password = "123zxcv"
port = 22
sftpObject = SftpTrans(host="192.168.142.222", port=22, username="root", password="123zxcv")
sftpObject.transFileFromLocal(localPath="D:/bca.txt", aimsPath='/mnt/why/bca.txt')
sftpObject.closeStpf()
# 下载
host = '192.168.142.222'
username = 'root'
password = "123zxcv"
port = 22
sftpObject = SftpTrans(host="192.168.142.222", port=22, username="root", password="123zxcv")
sftpObject.getFileFromAims(aimsPath='/mnt/why/bca.txt', localPath="E:/bca.txt")
sftpObject.closeStpf()
2.ssh方式远程执行命令行操作linux
# coding=utf-8
import paramiko
class SSHTrans(object):
def __init__(self, host, port, username, password):
self.client = paramiko.SSHClient()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.client.connect(host, port, username=username, password=password, timeout=20)
def exec_command(self, cmd):
stdin, stdout, stderr = self.client.exec_command(cmd, get_pty=False)
return stdout
def exec_commands(self, cmds):
for i in cmds:
stdin, stdout, stderr = self.client.exec_command(i, get_pty=False)
def close_ssh(self):
self.client.close()
host = '192.168.142.222'
username = 'root'
password = "123zxcv"
port = 22
ssh = SSHTrans(host="192.168.142.222", port=22, username="root", password="123zxcv")
list = ssh.exec_command(cmd='ls /mnt/')
for i in list:
print i
ssh.close_ssh()
# 输出:
apache-activemq-5.15.0
apache-activemq-5.15.0-bin.tar.gz
why
3.transport方式登录到服务器执行操作
# coding=utf-8
import paramiko
class TransportClient(object):
def __init__(self, host, port, username, password):
self.trans = paramiko.Transport((host, port))
self.connect = self.trans.connect(username=username, password=password)
self.ssh = paramiko.SSHClient()
self.ssh._transport = self.trans
def exec_command(self, cmd):
stdin, stdout, stderr = self.ssh.exec_command(cmd, get_pty=False)
return stdout
def exec_commands(self, cmds):
for i in cmds:
stdin, stdout, stderr = self.ssh.exec_command(i, get_pty=False)
def close_ssh(self):
self.trans.close()
host = '192.168.142.222'
username = 'root'
password = "123zxcv"
port = 22
ssh = TransportClient(host="192.168.142.222", port=22, username="root", password="123zxcv")
list = ssh.exec_command(cmd='ls /mnt/')
for i in list:
print i
ssh.close_ssh()