(-)上传下载实现
import paramiko
transport = paramiko.Transport(('10.10.10.129',22))
transport.connect(username='ding',password='111111')
sftp = paramiko.SFTPClient.from_transport(transport)
'''不晓得在WINDOWS下的路径和Linux路径表示不同,是否可以成功?实验证实是可以成功的,WINDOWS就写WINDOWS的路径格式即可,Linux
则写Linux的路径格式。
有一点需要注意的就是:必须给出完整的路径名包括文件名。
'''
# 上传
sftp.put('E:\json.jn','/home/ding/json_new.jn')
#下载
sftp.get('/home/ding/json_new.jn','hello_json')
transport.close()
(二)连接客户端执行命令实现及问题待解决
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='10.10.10.129',port=22,username='ding',password='111111')
'''执行下面这条ifconfig命令不会返回输出,执行echo $PATH后发现环境变量路径和Linux下的路径不同,少了一些,造成ifconfig无法执行,
具体导致原因还未知道,浏览器收藏的张戈博客很不错,有关于paramiko的文章很好,包括stdout的缓冲'''
# stdin,stdout,stderr=ssh.exec_command('ifconfig')
stdin,stdout,stderr=ssh.exec_command('echo $PATH')
result=stdout.read()
# result输出是BYTES类型的,需要result.decode()解码才可以
print(result.decode())
ssh.close()