因為功能需要,需要從遠端服務器拉取文件資源到本地,寫了一個簡單腳本. 功能沒有很復雜就不寫相關解釋了
import paramiko
def download_from_remote(remote_path, local_path):
# 服務器連接信息
host_ip = 'xxx.xx.xx.xxx'
port = 22
user_name = 'root'
password = 'root'
try:
t = paramiko.Transport((host_ip, port))
t.connect(username=user_name, password=password) # 登錄遠程服務器
sftp = paramiko.SFTPClient.from_transport(t) # sftp傳輸協議
for file_name in sftp.listdir(remote_path):
if file_name.endswith('.xlsx'):
src = remote_path + file_name
des = local_path + file_name
sftp.get(src, des) # 下載文件
t.close()
except:
print(IOError)
remote_scp(host_ip, user_name, password)
if __name__ == '__main__':
remote_path = '/data/app/test/'
local_path = '/data/app//resources/'
#判斷文件是否存在
createDirIfNotExists(local_path)
# 下載遠端文件到當前服務器
download_from_remote(remote_path, local_path)
需要注意的地方是 sftp.get(src, des) 參數的路徑一定要是 ‘文件地址 + 文件名’ (/data/app/test/aa.xlsx) 的格式 ; 否則會出現一個 os的異常,具體這裡不在展示了