使用paramiko模块,构建一个Server类,用来连接远程服务器,支持ssh连接、两种方式下发指令、sftp单文件的上传下载。
测试连接linux和solaris远程主机均能正常使用
代码:
# -*- coding: utf-8 -*-
"""
Created on Wed May 14 10:53:38 2019
@author: Phoenix
Modified : 2019-10-24
"""
import paramiko
from time import sleep
class Server(object):
def __init__(self, ip, port, username, password, timeout=30):
"""
通过IP, 端口,用户名,密码,超时时间,初始化一个远程主机
:param ip:
:param port:
:param username:
:param password:
:param timeout:
"""
self._ip = ip
self._port = port
self._username = username
self._password = password
self._timeout = timeout
# transport, channel, ssh, sftp
self._transport = None
self._channel = None
self._ssh = None
self._sftp = None
self._prompt = None
# 连接失败的重试次数(总计3次尝试)
self._try_times = 2
# 调用connect方法连接远程主机
def connect(self):
_result = ''
while True:
# 尝试连接
try:
self._transport = paramiko.Transport((self._ip, self._port))
self._transport.connect(username=self._username, password=self._password)
# 如果没有抛出异常说明连接成功,直接返回
# print('%s 创建成功' % self._ip)
_result +=