def niHourGetter(omcinfo,hour): print('nbi id%s ip(%s) is scan' % (omcinfo['id'],omcinfo['ip'])) ftp = ftpext.FTPExt(omcinfo['ip'],omcinfo['port'],omcinfo['user'],omcinfo['password']) ftp.cwd(omcinfo['path']) if debuglevel >= 1 : print(os.path.join(omcinfo['path'])) for k,v in ftp.ls().items(): localdir = os.path.join(FTP_DL_DIR,hour.strftime('%Y%m%d')) if not os.path.isdir(localdir) : os.mkdir(localdir) localdir = os.path.join(localdir,omcinfo['id']) if not os.path.isdir(localdir) : os.mkdir(localdir) if v['dir'] and \ k.find(hour.strftime(subfoldernor[omcinfo['vendor']]['dateDirformat'])) != -1 : if debuglevel >= 1 : print(omcinfo['path']+'/'+k) ftp.cwd(omcinfo['path']+'/'+k) for k1,v1 in ftp.ls().items(): if subfoldernor[omcinfo['vendor']]['layer'] == 1 : if debuglevel >= 2 : print(k1) if v1['file'] and isValidMroFile(k1,omcinfo,hour) and not mroFileCheck(localdir,k1): ftpDL(ftp,localdir,k1,omcinfo['id']) elif v1['dir'] and subfoldernor[omcinfo['vendor']]['layer'] == 2 : if debuglevel >= 2 : print(omcinfo['path']+'/'+k+'/'+k1) ftp.cwd(omcinfo['path']+'/'+k+'/'+k1) for k2,v2 in ftp.ls().items(): if isValidMroFile(k2,omcinfo,hour) and not mroFileCheck(localdir,k2): ftpDL(ftp,localdir,k2,omcinfo['id']) ftp.close()
def fxp_dst(host='host2', user='******', password='******'): """ Define a destination server""" try: ftp_dst = ftpext.FTPExt(host, PORT, user, password, False) except ConnectionError as conn_e: LOGGER.error(conn_e) return False def _close(): ftp_dst.close() return ftp_dst
def fxp_src(host='host1', user='******', password='******'): """ Define a sorce server""" try: ftp_src = ftpext.FTPExt(host, PORT, user, password, False) except ConnectionError as conn_e: LOGGER.error(conn_e) return False def _close(): """ Use this to close the connection""" ftp_src.close() return ftp_src
def ftpPush(localdir,filename,mirrorlevel): ftp = ftpext.FTPExt('10.30.173.73','21','mroPusher','1qaz@WSX') subdir = 'MRO' if subdir not in ftp.nlst() : ftp.mkd(subdir) ftp.cwd('MRO') dirlist = localdir.split(os.sep) for i in range(mirrorlevel): subdir = dirlist[i-mirrorlevel] print(subdir) if subdir not in ftp.nlst() : ftp.mkd(subdir) ftp.cwd(subdir) f = open(os.path.join(localdir,filename), 'rb') f_done = open(os.path.join(localdir,filename+'.done'), 'rb') print('%s push is begin' % filename) if filename not in ftp.nlst() : ftp.storbinary('STOR '+filename,f) ftp.storbinary('STOR '+filename+'.done',f_done) print('%s push is done' % filename) f.close() ftp.close() delayRemove(localdir,filename)