python 資料庫程式設計

2022-09-02 06:33:07 字數 2804 閱讀 5686

paramiko是基於python實現的ssh2遠端安全連線,支援認證及金鑰方式。可以實現遠端命令執行、檔案傳輸、中間ssh**等功能。

paramiko包含兩個核心元件:sshclient和sftpclient

它是ssh服務會話的高階表示,該類封裝了傳輸(transport)、通道(channel)及sftpclient的校驗、建立的方法,通常用於執行遠端命令,下面是個例子:

import

paramiko

#建立ssh物件

ssh =paramiko.sshclient()

#允許連線不在know_hosts檔案中的主機

ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

#連線伺服器

ssh.connect(hostname='

192.168.10.20

', port=22, username='

test

', password='

123')#

執行命令

stdin, stdout, stderr = ssh.exec_command('

pwd')#

獲取命令結果

result =stdout.read()

print(str(result,encoding='

utf8'))

#關閉連線

ssh.close()

執行結果:

/home/test/

下面介紹它的幾種常用方法

connect方法實現了ssh連線並校驗

引數有:

port:埠,預設22

username:登入使用者名稱

password:密碼

pkey:私鑰方式用於身份驗證

timeout:乙個可選的超時時間的tcp連線

allow_agent:設定為false時用於禁止連線到ssh**

compress:設定為true時開啟壓縮。

遠端命令執行方法,該命令的輸入輸出流為標準輸入(stdin)、輸出(stdout)、錯誤(stderr)的python檔案物件。

引數:command:執行命令

bufsize:檔案快取區大小,預設為-1(不限制)

載入本地公鑰校驗檔案,預設為~/.ssh/known_hosts,飛預設路徑需要手動指定

引數:filename:指定的遠端主機公鑰記錄檔案。

設定連線的遠端主機沒有本地主機金鑰或hostkeys物件時的策略,目前支援三種,分別是autoaddpolicy、rejectpolicy、warningpolicy,僅限用於sshclient類,分別代表的含義如下:

autoaddpolicy,自動新增主機名及主機金鑰到本地hostkeys物件,並將其儲存,不依賴load_system_host_keys()的配置,即使~/.ssh/know_hosts不存在也不產生影響

rejectpolicy,自動拒絕位置的主機名和金鑰,依賴load_system_host_keys()的配置

warningpolicy,用於記錄乙個位置的主機金鑰的python的警告,並接受它,功能上與autoaddpolicy相似,但未知主機會有告警

import

paramiko

transport = paramiko.transport(('

127.0.0.1

',17181))

transport.connect(username='

tecom

',password='

phgyzvyx43mdrjvj')

sftp =paramiko.sftpclient.from_transport(transport)

#將location.py 上傳至伺服器 /tmp/test.py

下面介紹sftpclient的常用方法。

建立乙個已連通的sftp客戶端通道

引數說明:t(transport),乙個已通過驗證的傳輸物件。

上傳本地檔案到遠端sftp服務端

引數說明:localpath:str型別,上傳的本地檔案全路徑(源)

remotepath:str型別,遠端檔案全路徑(目標)

callback:獲取已接收的位元組數及總傳輸位元組數,以便毀掉函式呼叫,預設為none

confirm(bool):檔案上傳完畢i後是否呼叫stat()方法,以便確認檔案大小

引數:remotepath,遠端路徑(源)

localpath,本地路徑(目標)

sftpclient類其他常用方法

mkdir:在sftp伺服器端建立目錄,如sftp.mkdir('/home/test',0755)

remove:刪除sftp伺服器端指定目錄,如sftp.remove('/home/test')

rename:重新命名sftp伺服器端檔案或目錄,如sftp.rename('/home/test.sh','/home/test1.sh')

stat:獲取sftp伺服器端指定檔案資訊,如sft.stat('/home/testfile.sh')

listdir:獲取遠端sftp伺服器端指定目錄資訊,以python的列表(list)形式返回,如,sftp.listdir('/home')

Python資料庫程式設計 MySQL

要使用python連線mysql 首先得安裝mysql 我這裡已安裝了mysql 並設定 賬戶 root 密碼為 123456 mysql 檔案 create database stu use stu create table students snum int 6 not null,sname v...

Python資料庫程式設計MySQL u

本章主要講解ubuntu下的mysql資料庫的安裝與python資料庫程式設計。本節主要內容是安裝mysql伺服器 客戶端和python訪問mysql的介面模組三部分內容。安裝mysql伺服器軟體 sudo apt get install mysql server mysql伺服器端安裝過程中會彈出...

python資料庫入門程式設計。

一 yum install mariadb server y 對資料庫安全初始化 設定登陸密碼 二 資料庫視覺化 2.安裝php mysql連線資料庫 3.重啟httpd 4.將安裝包複製到 var www html 預設發布目錄下,便於測試 cd var www html cp root desk...