利用paramiko获取上传下载远程服务器的资源信息

# -*- coding: utf-8 -*-

import paramiko
hostname='192.168.76.10'
username='root'
password='123456'
paramiko.util.log_to_file('syslogin.log')
ssh=paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.76.10', port=22, username=username, password=password)
stdin,stdout,stderr=ssh.exec_command('free -m')
print stdout.read()
stdin,stdout,stderr=ssh.exec_command('df -h')
print stdout.read()
ssh.close()

 

 

set_missing_host_key_policy方法,是制定连接远程主机没有本地密钥或HostKeys对象是的策略,有三种策略:
1、AutoAddPolicy,自动添加主机名及主机密钥到本地HostKeys对象,并保存,不依赖load_system_host_keys()的配置,即使~/.ssh/known_hosts不存在也不产生影响。

2、WarningPolicy,用于记录一个未知的主机密钥的python警告,并接受它,功能上与AutoAddPolicy相似,但未知主机会有告警

3、RejectPolicy,自动拒绝不知的主机名和密钥,依赖 load_system_host_keys()的配置

 

import paramiko
name='root'
pw='123456'
hname='192.168.76.10'
port=22
try:
t = paramiko.Transport((hname, port))
t.connect(username=name, password=pw)
sftp = paramiko.SFTPClient.from_transport(t)
#上传和下载一定是文件路径的格式,不能是目录,不然会报错
sftp.put('d:\job\information.txt', '/tmp/in.txt', confirm=True)
sftp.get('/tmp/d.html', 'd:/job/d.html')
sftp.mkdir('/tmp/xuebo')
sftp.rmdir(('/tmp/t'))
sftp.rename('/tmp/t1', '/tmp/t11.sh')
print sftp.stat('/tmp/in.txt')
print sftp.listdir('/tmp')
t.close()
except Exception, e:
print str(e)

 

posted @ 2018-04-20 10:40  old_bird  阅读(216)  评论(0编辑  收藏  举报