Python中的模組--SSH相關模組
Python中使用SSH需要用到OpenSSH,而OpenSSH依賴於paramiko模組,而paramiko模組又依賴於pycrypto模組,因此要在Python中使用SSH,則需要先安裝模組順序是: pycrypto -> paramiko
我是直接使用pip安裝:
下面是網上的一些栗子:
栗子一:執行遠端命令:
import paramiko
#新建一個ssh客戶端物件
client = paramiko.SSHClient()
# 設定成預設自動接受金鑰
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連線遠端主機
client.connect('IP', 22, username='root', password='password', timeout=4)
#在遠端主機執行shell命令
stdin, stdout, stderr = client.exec_command('ls -l')
#讀取執行結果
for std in stdout.readlines():
print (std,)
client.close()
栗子二:上傳本地檔案至遠端主機
import paramiko
t = paramiko.Transport(("IP",22))
t.connect(username = "username", password = "password")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.put(localpath,remotepath)
t.close()
栗子三:下載遠端主機檔案到本地
import paramiko
t = paramiko.Transport(("IP",22))
t.connect(username = "username", password = "password")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.get(remotepath, localpath)
t.close()
栗子四:
通常需要對多個伺服器或者虛擬機器進行管理,可以採用批量的方式進行。
import paramiko
import threading
def ssh2(ip,username,passwd,cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)
out = stdout.readlines()
for o in out:
print (o,) #螢幕輸出
print ('%s\tOK\n'%(ip))
ssh.close()
except :
print ('%s\tError\n'%(ip))
if __name__=='__main__':
cmd = ['echo hello!']#需要執行的命令列表
username = "root" #使用者名稱
passwd = "root" #密碼
threads = [] #多執行緒
print ("Begin excute......")
for i in range(1,254):
ip = '192.168.1.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start()
最後一個栗子,如果命令較少,pssh更適合。
相關文章
- python 時間相關模組Python
- JavaScript 模組相關JavaScript
- python之pymsql模組相關介紹PythonSQL
- python模組paramiko與sshPython
- python paramiko模組管理SSHPython
- JavaScript相關的模組機制JavaScript
- ssh、PAM模組
- Python學習【第十三篇】隨機數相關:random模組&string模組Python隨機random
- Python之logging模組相關介紹Python
- python常用模組之paramiko與sshPython
- Python中的abc模組Python
- python中的chardet模組Python
- Python中模組的使用Python
- Python中模組是什麼?Python有哪些模組?Python
- Python中os模組Python
- python中重要的模組--asyncioPython
- Python 中argparse模組的使用Python
- Python3中的模組Python
- Python中operator 模組的用法Python
- Python中itertools 模組的用法Python
- python 模組:itsdangerous 模組Python
- Python模組:time模組Python
- urlparse模組(python模組)Python
- python模組-re模組Python
- python模組 - functools模組Python
- 聊聊中後臺前端應用:模組相關的一些事前端
- OA知識普及之OA相關模組——OA中的知識管理
- Python的defaultdict模組和namedtuple模組Python
- Python中的collections.Counter模組Python
- Python中paramiko 模組的用法Python
- Python中pathlib 模組的用法Python
- Python中yaml模組的使用教程PythonYAML
- python模組之collections模組Python
- 關於Python中math 和 decimal 模組的解析與實踐PythonDecimal
- Python中os.walk()模組Python
- Python 內建模組:os模組Python
- Python模組之urllib模組Python
- [Python模組學習] glob模組Python