python paramiko模塊實(shí)現(xiàn)遠(yuǎ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, 沒報(bào)錯(cuò)表示安裝成功

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
>>>

使用

我這里有兩個(gè)需求

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

遠(yuǎn)程上傳文件

#!/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 只是個(gè)人需要 可以直接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()

遠(yuǎn)程執(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())
# 第二個(gè)參數(shù)port 必須是int類型,我之前讀配置文件內(nèi)容當(dāng)參數(shù)的時(shí)候,放了個(gè)char里面,會(huì)報(bào)錯(cuò)
s.connect(hostname = hostname,port=port,username=username, password=password)
stdin, stdout, stderr = s.exec_command('ls')
print stdout.read()
s.close()

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

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

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