1. 程式人生 > 實用技巧 >Python使用paramiko遠端連線伺服器及上傳檔案

Python使用paramiko遠端連線伺服器及上傳檔案

paramiko是一個基於SSH2的Python三方包,可以用於連線遠端伺服器,執行命令或上傳下載檔案等。

使用SSH連線遠端伺服器並執行命令

import paramiko

paramiko.util.log_to_file('syslogin.log')  # 設定執行日誌

ssh_cli = paramiko.SSHClient()  # 建立SSHClient例項
ssh_cli.load_system_host_keys()  # 載入系統預設ssh_keys

ssh_cli.connect(hostname='******', username='test', password='123456')  # 建立ssh連線

stdin, stdout, stderr = ssh_cli.exec_command('free -h')  # 在遠端伺服器上執行命令
print(stdout.read().decode('utf-8'))  # 輸出命令返回結果

ssh_cli.close()  # 關閉連線

使用SFTP上傳下載檔案

import paramiko

server = ('***.***.***.***', 22)  # 伺服器地址及埠
t = paramiko.Transport(server)  # 例項化連線物件
t.connect(username='test',password='123456')  # 建立連線
sftp = paramiko.SFTPClient.from_transport(t)  # 使用連結建立sftp物件

print(sftp.listdir('/home/test'))  # 列出目錄所有檔案

#  下載
remote_file = '/home/test/a.txt'  # 伺服器上的檔案
local_file = 'a.txt'  # 要儲存的本地檔案
sftp.get(remote_file, local_file)  # 下載檔案

# 上傳
sftp.mkdir('/home/test/dat')  # 建立目錄
local_file = 'b.txt'  # 本地檔案
remote_file = '/home/test/dat/b.txt'  # 要儲存到伺服器上的檔案
sftp.put(local_file, remote_file)  # 上傳

t.close()  # 關閉連線