通过Jenkins使用FTP将文件下载到远程服务器时,权限被拒绝错误

时间:2019-07-25 07:45:11

标签: python python-3.x

尝试使用ftplib(jenkins作业)将文件从远程服务器复制到另一台服务器时出现以下错误。在我的本地服务器上,它工作正常。

在Python代码中,我正在将文本文件下载到数据仓库服务器并处理该文件,在下载该文件时遇到权限问题。有没有办法处理TEXT文件中的数据并插入将该数据保存到仓库数据库而无需下载它。如果可以,可以解决此错误。

1)还提到了python代码的一部分,任何人都可以让我知道如何解决这个问题,我对TEXT文件所在的源服务器具有FTP访问权限,对目标数据具有SSh根访问权限仓库服务器(没有物理访问权限)。 由于两者都是不同的服务器,并且我在jenkins中将其作为作业运行,因此我不知道需要检查哪个权限,哪个用户? 如何通过FTP和SSH访问进行确认?

2)如果有人可以指导如何提及服务器,用户名和密码而无需在脚本中进行硬编码,这也将非常有帮助。

Python代码:

def getFile(ftp, filename):
    try:
        local_filename = os.path.join(r"/Users/linu/Downloads/", filename)
        #local_filename = os.path.join(r"/home/etl/bi/csv_imports/", filename)
        lf = open(local_filename, "wb")
        ftp.retrbinary("RETR " + filename ,lf.write)
        print("file copied")
    except (Exception, psycopg2.Error) as error:
        print ("Error: {}".format(error))
try:
filePath='''/Users/linu/Downloads/log'''
table='staging.stock_dump'

SQL="""DROP TABLE IF EXISTS """+  table + """;CREATE TABLE """+ table + """
(created_date TEXT, product_sku TEXT, previous_stock TEXT, current_stock TEXT );"""

cur_psql.execute(SQL)
cnx_psql.commit()

try:
 ftp = FTP('server.com','username','password')
 print("FTP connection succesful")
 ftp.cwd('/stockitem/')
except (Exception, psycopg2.Error) as error:
 print ("Error: {}".format(error))
getFile(ftp,'log')

错误:

12:33:00 [EnvInject] - Loading node environment variables.
12:33:00 Building in workspace /var/lib/jenkins/jobs/log_porting_from_magento/workspace
12:33:00 [workspace] $ /bin/sh -xe /tmp/jenkins34559567899962487.sh
12:33:00 + export PYTHONPATH=/home/etl/bi/
12:33:00 + cd /home/etl/bi/crm
12:33:00 + python3 -u log_porting.py
12:33:00 DWH Connected
12:33:00 Table staging.stock_dump Created at DWH
12:33:01 FTP connection succesful
12:33:01 Error occured while copying file from source to destination 
12:33:01 Error: [Errno 13] Permission denied: '/home/etl/bi/csv_imports/log'
12:33:01 Finished: SUCCESS

0 个答案:

没有答案