python paramiko模塊實現(xiàn)遠程文件上傳文件, 執(zhí)行命令

使用環(huán)境:Ubuntu12.04 server

安裝

sudo apt-get install libffi-dev
sudo apt-get install libssl-dev
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo pip install paramiko

命令行執(zhí)行python, import paramiko, 沒報錯表示安裝成功

root@ubuntu:~# python
Python 2.7.3 (default, Oct 26 2016, 21:01:49)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import paramiko
>>>

使用

我這里有兩個需求

* 遠程上傳文件
* 遠程執(zhí)行命令
代碼

遠程上傳文件

#!/usr/bin/env python
#coding=utf-8

import paramiko
import os
import sys

hostname='192.168.0.102'
username='root'
password='abc'
port=22

t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
# 這里的os.path.join 只是個人需要 可以直接sftp.put(local_file_path, remote_file_path)
sftp.put(os.path.join('/home/update','a.txt'), os.path.join('/home/update', 'a.txt'))
t.close()

遠程執(zhí)行命令

#!/usr/bin/env python
#coding=utf-8

import paramiko
import os
import sys

hostname='192.168.0.102'
username='root'
password='abc'
port=22

# exec command
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 第二個參數(shù)port 必須是int類型,我之前讀配置文件內(nèi)容當參數(shù)的時候,放了個char里面,會報錯
s.connect(hostname = hostname,port=port,username=username, password=password)
stdin, stdout, stderr = s.exec_command('ls')
print stdout.read()
s.close()

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容