python安裝須要安裝paramiko模塊

1、介紹java

1.最近手頭有個腳本用於遠程批量傳輸文件的。因爲系統自己環境兼容不是很好,因此開始升級配置環境。python

2.paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的鏈接。linux

因爲使用的是python這樣的可以跨平臺運行的語言,因此全部python支持的平臺,如Linux,Solaris,BSD,MacOSX,Windows等,paramiko均可以支持,所以,若是須要使用SSH從一個平臺鏈接到另一個平臺,進行一系列的操做時,paramiko是最佳工具之一。windows

2、安裝centos

1.因爲centos5.9的版本是2.4.3的,因此首先得將python進行升級。服務器

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的模塊。ssh

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的模塊後,開始安裝ide

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.安裝完這些以後。基本就算完成了。下面就是測試下。工具

[root@localhost paramiko-1.7.6]# python test.py
........................................................................................................... 9s 9s ......... 5s 1s ......... 13s ......... 5s ......... ........ .....................
----------------------------------------------------------------------
Ran 108 tests in 129.948s
OK
出現這樣的就表示成功了,咱們再測試一把。
[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服務器的代碼

方式一:

ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect("某IP地址",22,"用戶名", "口令")
上面的第二行代碼的做用是容許鏈接不在know_hosts文件中的主機。

方式二:

t = paramiko.Transport((「主機」,」端口」))t.connect(username = 「用戶名」, password = 「口令」)
若是鏈接遠程主機須要提供密鑰,上面第二行代碼可改爲:
t.connect(username = 「用戶名」, password = 「口令」, hostkey=」密鑰」)
 

下面給出實際的例子:

3.1windows對linux運行任意命令,並將結果輸出

若是linux服務器開放了22端口,在windows端,咱們可使用paramiko遠程鏈接到該服務器,並執行任意命令,而後經過print或其它方式獲得該結果,

代碼以下:

#!/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服務器上的文件

#!/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()
 3.3從widnows端上傳文件到linux服務器
#!/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()
相關文章
相關標籤/搜索