前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python安装需要安装paramiko

python安装需要安装paramiko

作者头像
py3study
发布2020-01-10 17:14:49
1.5K0
发布2020-01-10 17:14:49
举报
文章被收录于专栏:python3python3

一、介绍

1.最近手头有个脚本用于远程批量传输文件的。由于系统本身环境兼容不是很好,所以开始升级配置环境。

2.paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux,Solaris,BSD,MacOSX,Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。

二、安装

1.由于centos5.9的版本是2.4.3的,所以首先得将python进行升级。

代码语言:javascript
复制
wget  http://down1.chinaunix.net/distfiles/Python-2.7.3.tar.bz2
tar jxvf  Python-2.7.3.tar.bz2
./configure --prefix=/usr/local/Python-2.7.3/
make  && make install
mv  /usr/bin/python /usr/bin/python_old
ln  -s  /usr/local/Python-2.7.3/bin/python /usr/bin/python

2.以上对python进行了升级。下面开始安装paramiko模块,安装paramiko模块需要先安装PyCrypto的模块。

代码语言:javascript
复制
wget http://down1.chinaunix.net/distfiles/pycrypto-2.0.1.tar.gz
tar zxvf  pycrypto-2.0.1.tar.gz
python  setup.py  install

3.安装完PyCrypto的模块后,开始安装

代码语言:javascript
复制
wget http://down1.chinaunix.net/distfiles/paramiko-1.5.4.zip
unzip  paramiko-1.5.4.zip
python  setup.py  install
python test.py((在paramiko的目录下))

4.安装完这些之后。基本就算完成了。下面就是测试下。

代码语言:javascript
复制
[root@localhost paramiko-1.7.6]# python test.py
........................................................................................................... 9s 9s ......... 5s 1s ......... 13s ......... 5s ......... ........ .....................
----------------------------------------------------------------------
Ran 108 tests in 129.948s
OK
出现这样的就表示成功了,我们再测试一把。
代码语言:javascript
复制
[root@localhost ~]# python
Python 2.7.3 (default, Oct  2 2013, 03:25:17)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import paramiko
>>>
呵呵,这样就安装成功了

三:使用paramiko

如果大家感觉安装paramiko还是略有麻烦的话,当使用到paramiko提供的方便时便会觉得这是十分值得的。

下面是两种使用paramiko连接到linux服务器的代码

方式一:

代码语言:javascript
复制
ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect("某IP地址",22,"用户名", "口令")
代码语言:javascript
复制
上面的第二行代码的作用是允许连接不在know_hosts文件中的主机。

方式二:

代码语言:javascript
复制
t = paramiko.Transport((“主机”,”端口”))t.connect(username = “用户名”, password = “口令”)
代码语言:javascript
复制
如果连接远程主机需要提供密钥,上面第二行代码可改成:
代码语言:javascript
复制
t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”)

下面给出实际的例子:

3.1windows对linux运行任意命令,并将结果输出

如果linux服务器开放了22端口,在windows端,我们可以使用paramiko远程连接到该服务器,并执行任意命令,然后通过print或其它方式得到该结果,

代码如下:

代码语言:javascript
复制
#!/usr/bin/python
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("某IP地址",22,"用户名", "口令")
stdin, stdout, stderr = ssh.exec_command("你的命令")
print stdout.readlines()
ssh.close()

其中的”你的命令”可以任意linux支持的命令,如一些常用的命令:

df:查看磁盘使用情况uptime:显示系统运行时间信息cat:显示某文件内容mv/cp/mkdir/rmdir:对文件或目录进行操作/sbin/service/ xxxservice start/stop/restart:启动、停止、重启某服务netstat -ntl |grep 8080:查看8080端口的使用情况 或者 nc -zv localhost :查看所有端口的使用情况 find / -name XXX:查找某文件

这样一来,对于linux的任何操作几乎都可以通过windows端完成,如果对该功能进行引申,还可以同时管理多台服务器。

3.2从widnows端下载linux服务器上的文件

代码语言:javascript
复制
#!/usr/bin/python import paramikot = paramiko.Transport((“主机”,”端口”))t.connect(username = “用户名”, password = “口令”)sftp = paramiko.SFTPClient.from_transport(t)remotepath=’/var/log/system.log’localpath=’/tmp/system.log’sftp.get(remotepath, localpath)t.close()
代码语言:javascript
复制
 3.3从widnows端上传文件到linux服务器
代码语言:javascript
复制
#!/usr/bin/python
import paramiko
t = paramiko.Transport((“主机”,”端口”))
t.connect(username = “用户名”, password = “口令”)
sftp = paramiko.SFTPClient.from_transport(t)
remotepath=’/var/log/system.log’
localpath=’/tmp/system.log’
sftp.put(localpath,remotepath)
t.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档