因为功能需要,需要从远端服务器拉取文件资源到本地,写了一个简单脚本. 功能没有很复杂就不写相关解释了
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的异常,具体这里不在展示了