一般使用paramiko的功能就是通过ssh远程执行命令,远程(上传、下载)传输文件等等
依赖包:/usr/local/python27/bin/pip install pycrypto
下载包 paramiko
#wget http://en.onlinedown.net/down/paramiko-1.7.7.1.zip
#unzip paramiko-1.7.7.1.zip
#cd paramiko-1.7.7.1
#python setup.py build
#python setup.py install
#!/usr/bin/env python
#vim paramiko.py
#!/usr/bin/env python
import paramiko \\导入模块
hostname=‘192.168.10.106‘ \\定义需要链接的主机
port=22 \\定义链接的端口
username=‘root‘ \\定义链接的账号
password=‘123456‘ \\定义登陆密码
if __name__==‘__main__‘: \\如果当前的模块名称等于启动的主模块运行,就执行如下
paramiko.util.log_to_file(‘paramiko.log‘) \\指定执行的日志文件,日志名为paramiko.log
s=paramiko.SSHClient() \\创建客户端链接服务端的对象s
s.load_system_host_keys() \\ 加载主机秘钥
s.connect(hostname,port,username,password) \\链接主机
stdin,stdout,stderr=s.exec_command(‘ifconfig‘)
\\执行命令 ifconfig stdin:标准输入stdout:标准输出 stderr:标准错误
print stdout.read() \\打印标准输出的结果
s.close() \\关闭链接
从服务器端上传或下载文件
#!/usr/bin/env python
import paramiko 导入模块
import os
hostname=‘192.168.10.106‘ \\定义需要链接的主机
port=22 \\定义链接的端口
username=‘root‘ \\定义链接的账号
password=‘123456‘ \\定义登陆密码
dir_path=‘/home/soul/temp‘ \\定义请求下载的文件路径
if __name__==‘__main__‘:
t=paramiko.Transport((hostname,port)) \\创建一个传输对象
t.connect(username=username,password=password) \\建立链接服务器
sftp=paramiko.SFTPClient.from_transport(t) \\创建一个下载传输对象sftp
files=sftp.listdir(dir_path)
\\建立一个files对象,用于存放listdir从指定的路径dir_path中拿到的文件
for f in files: \\定义f从存放的文件中轮询
print ‘Retrieving‘,f \\打印拿到的文件名称
sftp.get(os.path.join(dir_path,f),f) \\从指定路径下 下载文件
t.close() \\关闭链接
下载:get 上传put
如从本地将/home/soul/temp/paramiko-1.7.7.1.zip文件上传到服务器的/home/路径下
sftp.put(‘/home/soul/temp/paramiko-1.7.7.1.zip‘,‘/home/paramiko-1.7.7.1.zip‘)
t.close()