python支持庫安裝
這里我們使用Paramiko庫對linux進(jìn)行操作,使用pip進(jìn)行庫的下載安裝
pip install paramiko --default-timeout=60
pip install paramiko -i https://pypi.douban.com/simple/
--trusted-host pypi.douban.com
linux環(huán)境準(zhǔn)備
需開啟SSH服務(wù)
( 如何檢查及開啟SSH 戳這里 )
常用操作
# coding:utf-8
import paramiko
# 創(chuàng)建SSHClient實(shí)例對象
ssh = paramiko.SSHClient()
# 調(diào)用方法,表示沒有存儲遠(yuǎn)程機(jī)器的公鑰,允許訪問
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連接遠(yuǎn)程機(jī)器 地址\端口\用戶名密碼
ssh.connect('192.168.32.130',22,'wf','wftest')
# 創(chuàng)建目錄(exec_command傳入的參數(shù)就是linux的操作命令)
# 每次執(zhí)行exec_command方法,都會新建執(zhí)行環(huán)境,當(dāng)前路徑在登錄用戶根目錄
cmd = 'mkdir jcy2'
ssh.exec_command(cmd)
# 如果命令跨行
cmd = '''echo '1234
5678
90abc' > myfile
'''
ssh.exec_command(cmd)
# 獲取命令的執(zhí)行結(jié)果(stdin:控制輸入,stdout\stderr輸出)
# cmd = 'cat myfile'
# 同行執(zhí)行多個(gè)命令,前邊的命令報(bào)錯(cuò)后面的命令仍然會執(zhí)行
cmd = "pwd;mkdir jcy4;cd jcy4;pwd;mkdir jcy44"
stdin, stdout, stderr = ssh.exec_command(cmd)
output = stdout.read()+stderr.read()
print(output.decode('utf-8'))
# 傳送文件到遠(yuǎn)程機(jī)器
sftp = ssh.open_sftp()
sftp.put('ftp1.py', '/home/wf/ftp1.py')
sftp.close()
# 獲取遠(yuǎn)程機(jī)器文件( **不能獲取遠(yuǎn)程機(jī)器文件夾,如需要?jiǎng)t可以先使用tar命令打包,然后再獲取 )
sftp = ssh.open_sftp()
sftp.get('/home/wf/ftp2.py', './ftp2.py')
sftp.close()
# 關(guān)閉SSHClient連接
ssh.close()