def generolared(): teams = ['team-1/', 'team-2/', 'team-3/'] lista_files_teams = [] for team in teams: listaArchivosTeam = selectforlastdays(descargasdir + team, cantidad, '.', -3) #print listaArchivosTeam dirlistaArchivosTeam = str_mas_lista_str(descargasdir + team, listaArchivosTeam) for arch in dirlistaArchivosTeam: lista_files_teams.append(arch) if len(lista_files_teams) == 0: print 'no hay archivos de los ultimos ' + str( cantidad) + ' dias para concatenar' log_principal.write(fechahora + '\t error no hay archivos de los ' + str(cantidad) + ' dias seleccionado \n') log_principal.close() exit(1) #print lista_files_teams tmp_lista_files_teams = [] for archGZ in lista_files_teams: shutil.copy2(archGZ, printmpdirTeam) descomGZ(printmpdirTeam + archGZ.split('/')[-1]) os.remove(printmpdirTeam + archGZ.split('/')[-1]) tmp_lista_files_teams.append(printmpdirTeam + archGZ.split('/')[-1][:-3]) #print tmp_lista_files_teams #print lista_files_teams isokgenred = genred(tmp_lista_files_teams, nombredelaredtmp) if isokgenred: fileredes = os.listdir(printmpdirRedes) for filered in fileredes: shutil.copy2(printmpdirRedes + filered, redesdir) #if os.path.isfile(redesdir + filered): # os.chown(redesdir + filered, uid, gid) print 'red ' + nombredelared + ' generada' return True else: print 'error al generar la red' log_principal.write(fechahora + '\t error al generar la red \n') log_principal.close() exit(1)
def downloadFiles(): baseRoot = os.path.abspath(os.path.dirname(__file__)) + "/" ### DEFINICION DE PARAMETROS GENERALES proxy_ip_port = variables.proxy logdir = baseRoot + variables.logdir descargasdir = baseRoot + variables.descargasdir directorioDescargaTemp = descargasdir + "tmp/" ### directorio de trabajo #### guardar fecha actual fechahora = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S") today = str(datetime.date.today()).split("-") year = today[0] mes = today[1] dia = today[2] ### crea las carpetas de datos si no existen directorios = ( "descargas/tmp", "descargas/afrinic", "descargas/apnic", "descargas/arin", "descargas/ripe", "descargas/lacnic", "descargas/team-1", "descargas/team-2", "descargas/team-3", "descargas/asn", "descargas/routerviews", ) for indice in directorios: if not os.path.exists(indice): os.makedirs(indice) ### config del proxy si existe if proxy_ip_port != "": proxy_support = urllib2.ProxyHandler({"http": "http://" + proxy_ip_port, "ftp": "http://" + proxy_ip_port}) opener = urllib2.build_opener(proxy_support, urllib2.CacheFTPHandler) urllib2.install_opener(opener) ### Datos server FTP de los diferentes NICs servidores_ftp = { "ftp.afrinic.net": "/pub/stats/afrinic/" + year + "/", "ftp.apnic.net": "/pub/stats/apnic/" + year + "/", "ftp.arin.net": "/pub/stats/arin/", "ftp.ripe.net": "/pub/stats/ripencc/" + year + "/", "ftp.lacnic.net": "/pub/stats/lacnic/", } ### Datos de los nombres de ases asn = "http://www.potaroo.net/bgp/iana/asn.txt" ### Datos caida, conexiones de as as_conect = [ "http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-1/" + year + "/", "http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-2/" + year + "/", "http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-3/" + year + "/", ] ### Datos routerview, con las ip de los as routerviews = ( "http://data.caida.org/datasets/routing/routeviews-prefix2as/" + year + "/" ) # +mes+'/' #recorrer meses ##### DESCARGA DE ARCHIVOS DE LOS DIFERENTES SERVIDORES print "Iniciando descarga" descarga_log = open(logdir + "i_am_here_download_files.log", "a+") print "\ndescarga todos los archivos de los servidores\n" ####### descarga servers ftp afrinic ripe lanic arin apnic # try: print "--------------------------------------------" for servidor, carpeta in servidores_ftp.items(): print "--------------------------------------------" print "descargando servidor: " + servidor + carpeta dirs1 = lista_archivo_server(servidor, carpeta, proto="ftp", proxy=proxy_ip_port) directorioDescargaFtp = descargasdir + servidor.split(".")[1] + "/" for archivo in dirs1: if archivo.startswith("delegated-" + servidor.split(".")[1] + "-" + year) or archivo.startswith( "delegated-" + servidor.split(".")[1] + "ncc-" + year ): if not ( archivo.endswith(".asc.gz") or archivo.endswith(".asc") or archivo.endswith("asc.bz2") or archivo.endswith("md5") or archivo.endswith("md5.gz") ): # print directorioDescargaFtp, archivo if not ( os.path.isfile(directorioDescargaFtp + archivo) or os.path.isfile(directorioDescargaFtp + archivo[:-4] + ".gz") or os.path.isfile(directorioDescargaFtp + archivo + ".gz") ): # print archivo + '\r' if archivo.endswith(".gz"): nombre = archivo[:-3] if descarga( servidor, carpeta, archivo, directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port ): descomGZ(directorioDescargaTemp + archivo) if descarga( servidor, carpeta, nombre + ".md5.gz", directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port, ): descomGZ(directorioDescargaTemp + nombre + ".md5.gz") elif archivo.endswith(".bz2"): nombre = archivo[:-4] if descarga( servidor, carpeta, archivo, directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port ): if descarga( servidor, carpeta, nombre + ".md5", directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port, ): descomBZ2(directorioDescargaTemp + archivo) comGZ(directorioDescargaTemp + nombre) os.remove(directorioDescargaTemp + archivo) archivo = nombre + ".gz" else: nombre = archivo archivo = archivo + ".gz" if descarga( servidor, carpeta, nombre, directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port ): if descarga( servidor, carpeta, nombre + ".md5", directorioDescargaTemp, proto="ftp", proxy=proxy_ip_port, ): comGZ(directorioDescargaTemp + nombre) if os.path.isfile(directorioDescargaTemp + nombre) and os.path.isfile( directorioDescargaTemp + nombre + ".md5" ): verif = check_md5(directorioDescargaTemp + nombre) if verif == "True": shutil.copy2(directorioDescargaTemp + archivo, directorioDescargaFtp) # if os.path.isfile(directorioDescargaFtp + archivo): # os.chown(directorioDescargaFtp + archivo, uid, gid) print (os.path.isdir(directorioDescargaTemp)) if len(os.listdir(directorioDescargaTemp)) != 0: rmfiles = os.listdir(directorioDescargaTemp) for rmfile in rmfiles: os.remove(directorioDescargaTemp + rmfile) # except: # descarga_log.write( fechahora + '\t' + servidor + ' DOWNLOAD FAIL' + '\n' ) #### Descargar caida team print "--------------------------------------------" print "descarga team" try: for servidor in as_conect: archivos = lista_archivo_server(servidor, proto="http") directorioDescargaTeam = descargasdir + servidor.split("/")[-3] + "/" for archivoteam in archivos: if not os.path.isfile(directorioDescargaTeam + archivoteam): descarga( server=servidor, archivo=archivoteam, destino=directorioDescargaTemp, proto="http", proxy=proxy_ip_port, ) shutil.copy2(directorioDescargaTemp + archivoteam, directorioDescargaTeam) # if os.path.isfile(directorioDescargaTeam + archivoteam): # os.chown(directorioDescargaTeam + archivoteam, uid, gid) os.remove(directorioDescargaTemp + archivoteam) except: descarga_log.write(fechahora + "\t" + servidor[-12:-6] + "--" + " DOWNLOAD FAIL" + "\n") ### Descargar asn print "--------------------------------------------" print "descarga asn" try: directorioDescargaAsn = descargasdir + "asn/" nombre = "asn" + year + mes + dia nombrecomp = nombre + ".gz" if not os.path.isfile(directorioDescargaAsn + nombrecomp): descarga( server=asn[:-7], archivo=asn[-7:], destino=directorioDescargaTemp, proto="http", proxy=proxy_ip_port ) os.rename(directorioDescargaTemp + asn[-7:], directorioDescargaTemp + nombre) comGZ(directorioDescargaTemp + nombre) shutil.copy2(directorioDescargaTemp + nombrecomp, directorioDescargaAsn) # if os.path.isfile(directorioDescargaAsn + nombrecomp): # os.chown(directorioDescargaAsn + nombrecomp, uid, gid) os.remove(directorioDescargaTemp + nombre) os.remove(directorioDescargaTemp + nombrecomp) except: descarga_log.write(fechahora + "\t" + "--" + " asn DOWNLOAD FAIL" + "\n") ### Descargar routerview print "--------------------------------------------" print "descarga routerview" try: directoriosRV = lista_archivo_server(routerviews, proto="http") directorioDescargaRV = descargasdir + "routerviews/" for directorio in directoriosRV: archivosRV = lista_archivo_server(routerviews + directorio, proto="http") for fileRV in archivosRV: if not os.path.isfile(directorioDescargaRV + fileRV): descarga( server=routerviews + directorio, archivo=fileRV, destino=directorioDescargaTemp, proto="http", proxy=proxy_ip_port, ) shutil.copy2(directorioDescargaTemp + fileRV, directorioDescargaRV) # if os.path.isfile(directorioDescargaRV + fileRV): # os.chown(directorioDescargaRV + fileRV, uid, gid) os.remove(directorioDescargaTemp + fileRV) except: descarga_log.write(fechahora + "\t" + "--" + " routerview DOWNLOAD FAIL" + "\n")
def concateno(): ### concatenos los nic ####################### for nic in listanics: listaArchivosnic = selectforlastdays(descargasdir + nic + '/', cantidad, '-', -1) dirlistaArchivosnic = str_mas_lista_str( dirTrabajo + 'descargas/' + nic + '/', listaArchivosnic) printmpdirnic = printmpdir + nic + '/' if os.path.isdir(printmpdirnic): shutil.rmtree(printmpdirnic, ignore_errors=True) os.mkdir(printmpdirnic) tmplistaArchivosnic = [] for archGZ in dirlistaArchivosnic: shutil.copy2(archGZ, printmpdirnic) descomGZ(printmpdirnic + archGZ.split('/')[-1]) os.remove(printmpdirnic + archGZ.split('/')[-1]) tmplistaArchivosnic.append(printmpdirnic + archGZ.split('/')[-1][:-3]) #print tmplistaArchivosnic if concatenar_nic(tmplistaArchivosnic, cgi_datos_dir_tmp + nic): print 'concatenado nic ' + nic shutil.rmtree(printmpdirnic, ignore_errors=True) else: print 'error concatenar nic ' + nic log_principal.write(fechahora + '\t error concatenar nic ' + nic + '\n') log_principal.close() shutil.rmtree(printmpdirnic, ignore_errors=True) exit(1) ###concateno los nombres de as ############################## listaArchivosASN = selectforlastdays(descargasdir + 'asn/', cantidad, 'asn', -1) #print listaArchivosASN dirlistaArchivosASN = str_mas_lista_str(descargasdir + 'asn/', listaArchivosASN) printmpdirAsn = printmpdir + 'Asn' + '/' if os.path.isdir(printmpdirAsn): shutil.rmtree(printmpdirAsn, ignore_errors=True) os.mkdir(printmpdirAsn) tmplistaArchivosASN = [] for archGZ in dirlistaArchivosASN: shutil.copy2(archGZ, printmpdirAsn) descomGZ(printmpdirAsn + archGZ.split('/')[-1]) os.remove(printmpdirAsn + archGZ.split('/')[-1]) tmplistaArchivosASN.append(printmpdirAsn + archGZ.split('/')[-1][:-3]) #print tmplistaArchivosASN if concatenar_asn(tmplistaArchivosASN, cgi_datos_dir_tmp + 'asn'): print 'concatenado asn' shutil.rmtree(printmpdirAsn, ignore_errors=True) else: print 'error concatenar asn' log_principal.write(fechahora + '\t error concatenar asn \n') log_principal.close() exit(1) ###concateno routerviews ######################## #routeviews-rv2-20130508-1200.pfx2as.gz listaArchivosRouter = selectforlastdays(descargasdir + 'routerviews/', cantidad, '-', -2) #print listaArchivosRouter dirlistaArchivosRouter = str_mas_lista_str(descargasdir + 'routerviews/', listaArchivosRouter) printmpdirRv = printmpdir + 'Rv' + '/' if os.path.isdir(printmpdirRv): shutil.rmtree(printmpdirRv, ignore_errors=True) os.mkdir(printmpdirRv) tmplistaArchivosRouter = [] for archGZ in dirlistaArchivosRouter: shutil.copy2(archGZ, printmpdirRv) descomGZ(printmpdirRv + archGZ.split('/')[-1]) os.remove(printmpdirRv + archGZ.split('/')[-1]) tmplistaArchivosRouter.append(printmpdirRv + archGZ.split('/')[-1][:-3]) #print tmplistaArchivosRouter if concatenar_routerviews(tmplistaArchivosRouter, cgi_datos_dir_tmp + 'routerviews'): print 'concatenado routerviews' shutil.rmtree(printmpdirRv, ignore_errors=True) else: print 'error concatenar routerviews' log_principal.write(fechahora + '\t error routerviews \n') log_principal.close() shutil.rmtree(printmpdirRv, ignore_errors=True) exit(1)
cantidad = 7 printmpdir = 'tmp/' redesdir = 'redes/' teams = ['team-1/', 'team-2/', 'team-3/'] lista_files_teams = [] for team in teams: listaArchivosTeam = selectforlastdays(descargasdir + team, cantidad, '.', -3) dirlistaArchivosTeam = str_mas_lista_str(descargasdir + team, listaArchivosTeam) for arch in dirlistaArchivosTeam: lista_files_teams.append(arch) #print lista_files_teams tmp_lista_files_teams = [] for archGZ in lista_files_teams: shutil.copy2(archGZ, printmpdir) descomGZ(printmpdir + archGZ.split('/')[-1]) os.remove(printmpdir + archGZ.split('/')[-1]) tmp_lista_files_teams.append(printmpdir + archGZ.split('/')[-1][:-3]) #print tmp_lista_files_teams if len(lista_files_teams) == 0: print 'no hay archivos de los ultimos ' + str(cantidad) + ' dias para concatenar' log_principal.write(fechahora + '\t error no hay archivos de los ' + str(cantidad) + ' dias seleccionado \n') log_principal.close() exit(1) #print lista_files_teams nombredelared = redesdir + 'red_completa' [isokgenred, fechahora] = genred(tmp_lista_files_teams, nombredelared) for arch in tmp_lista_files_teams:
def downloadFiles(): baseRoot = os.path.abspath(os.path.dirname(__file__)) + '/' ### DEFINICION DE PARAMETROS GENERALES proxy_ip_port = variables.proxy logdir = baseRoot + variables.logdir descargasdir = baseRoot + variables.descargasdir directorioDescargaTemp = descargasdir + 'tmp/' ### directorio de trabajo #### guardar fecha actual fechahora = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S") today = str(datetime.date.today()).split('-') year = today[0] mes = today[1] dia = today[2] ### crea las carpetas de datos si no existen directorios = ('descargas/tmp', 'descargas/afrinic', 'descargas/apnic', 'descargas/arin', 'descargas/ripe', 'descargas/lacnic', 'descargas/team-1', 'descargas/team-2', 'descargas/team-3', 'descargas/asn', 'descargas/routerviews') for indice in directorios: if not os.path.exists(indice): os.makedirs(indice) ### config del proxy si existe if proxy_ip_port != '': proxy_support = urllib2.ProxyHandler({ 'http': 'http://' + proxy_ip_port, 'ftp': 'http://' + proxy_ip_port }) opener = urllib2.build_opener(proxy_support, urllib2.CacheFTPHandler) urllib2.install_opener(opener) ### Datos server FTP de los diferentes NICs servidores_ftp = { 'ftp.afrinic.net': '/pub/stats/afrinic/' + year + '/', 'ftp.apnic.net': '/pub/stats/apnic/' + year + '/', 'ftp.arin.net': '/pub/stats/arin/', 'ftp.ripe.net': '/pub/stats/ripencc/' + year + '/', 'ftp.lacnic.net': '/pub/stats/lacnic/' } ### Datos de los nombres de ases asn = 'http://www.potaroo.net/bgp/iana/asn.txt' ### Datos caida, conexiones de as as_conect = [ 'http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-1/' + year + '/', 'http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-2/' + year + '/', 'http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/team-3/' + year + '/' ] ### Datos routerview, con las ip de los as routerviews = 'http://data.caida.org/datasets/routing/routeviews-prefix2as/' + year + '/' #+mes+'/' #recorrer meses ##### DESCARGA DE ARCHIVOS DE LOS DIFERENTES SERVIDORES print "Iniciando descarga" descarga_log = open(logdir + 'i_am_here_download_files.log', 'a+') print '\ndescarga todos los archivos de los servidores\n' ####### descarga servers ftp afrinic ripe lanic arin apnic # try: print '--------------------------------------------' for servidor, carpeta in servidores_ftp.items(): print '--------------------------------------------' print 'descargando servidor: ' + servidor + carpeta dirs1 = lista_archivo_server(servidor, carpeta, proto='ftp', proxy=proxy_ip_port) directorioDescargaFtp = descargasdir + servidor.split('.')[1] + '/' for archivo in dirs1: if archivo.startswith('delegated-' + servidor.split('.')[1] + '-' + year) or archivo.startswith( 'delegated-' + servidor.split('.')[1] + 'ncc-' + year): if not (archivo.endswith('.asc.gz') or archivo.endswith('.asc') or archivo.endswith('asc.bz2') or archivo.endswith('md5') or archivo.endswith('md5.gz')): #print directorioDescargaFtp, archivo if not (os.path.isfile(directorioDescargaFtp + archivo) or os.path.isfile(directorioDescargaFtp + archivo[:-4] + '.gz') or os.path.isfile(directorioDescargaFtp + archivo + '.gz')): #print archivo + '\r' if archivo.endswith('.gz'): nombre = archivo[:-3] if descarga(servidor, carpeta, archivo, directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): descomGZ(directorioDescargaTemp + archivo) if descarga(servidor, carpeta, nombre + '.md5.gz', directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): descomGZ(directorioDescargaTemp + nombre + '.md5.gz') elif archivo.endswith('.bz2'): nombre = archivo[:-4] if descarga(servidor, carpeta, archivo, directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): if descarga(servidor, carpeta, nombre + '.md5', directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): descomBZ2(directorioDescargaTemp + archivo) comGZ(directorioDescargaTemp + nombre) os.remove(directorioDescargaTemp + archivo) archivo = nombre + '.gz' else: nombre = archivo archivo = archivo + '.gz' if descarga(servidor, carpeta, nombre, directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): if descarga(servidor, carpeta, nombre + '.md5', directorioDescargaTemp, proto='ftp', proxy=proxy_ip_port): comGZ(directorioDescargaTemp + nombre) if os.path.isfile(directorioDescargaTemp + nombre) and os.path.isfile( directorioDescargaTemp + nombre + '.md5'): verif = check_md5(directorioDescargaTemp + nombre) if verif == 'True': shutil.copy2(directorioDescargaTemp + archivo, directorioDescargaFtp) #if os.path.isfile(directorioDescargaFtp + archivo): # os.chown(directorioDescargaFtp + archivo, uid, gid) print(os.path.isdir(directorioDescargaTemp)) if len(os.listdir(directorioDescargaTemp)) != 0: rmfiles = os.listdir(directorioDescargaTemp) for rmfile in rmfiles: os.remove(directorioDescargaTemp + rmfile) # except: # descarga_log.write( fechahora + '\t' + servidor + ' DOWNLOAD FAIL' + '\n' ) #### Descargar caida team print '--------------------------------------------' print 'descarga team' try: for servidor in as_conect: archivos = lista_archivo_server(servidor, proto='http') directorioDescargaTeam = descargasdir + servidor.split( '/')[-3] + '/' for archivoteam in archivos: if not os.path.isfile(directorioDescargaTeam + archivoteam): descarga(server=servidor, archivo=archivoteam, destino=directorioDescargaTemp, proto='http', proxy=proxy_ip_port) shutil.copy2(directorioDescargaTemp + archivoteam, directorioDescargaTeam) #if os.path.isfile(directorioDescargaTeam + archivoteam): # os.chown(directorioDescargaTeam + archivoteam, uid, gid) os.remove(directorioDescargaTemp + archivoteam) except: descarga_log.write(fechahora + '\t' + servidor[-12:-6] + '--' + ' DOWNLOAD FAIL' + '\n') ### Descargar asn print '--------------------------------------------' print 'descarga asn' try: directorioDescargaAsn = descargasdir + 'asn/' nombre = 'asn' + year + mes + dia nombrecomp = nombre + '.gz' if not os.path.isfile(directorioDescargaAsn + nombrecomp): descarga(server=asn[:-7], archivo=asn[-7:], destino=directorioDescargaTemp, proto='http', proxy=proxy_ip_port) os.rename(directorioDescargaTemp + asn[-7:], directorioDescargaTemp + nombre) comGZ(directorioDescargaTemp + nombre) shutil.copy2(directorioDescargaTemp + nombrecomp, directorioDescargaAsn) #if os.path.isfile(directorioDescargaAsn + nombrecomp): # os.chown(directorioDescargaAsn + nombrecomp, uid, gid) os.remove(directorioDescargaTemp + nombre) os.remove(directorioDescargaTemp + nombrecomp) except: descarga_log.write(fechahora + '\t' + '--' + ' asn DOWNLOAD FAIL' + '\n') ### Descargar routerview print '--------------------------------------------' print 'descarga routerview' try: directoriosRV = lista_archivo_server(routerviews, proto='http') directorioDescargaRV = descargasdir + 'routerviews/' for directorio in directoriosRV: archivosRV = lista_archivo_server(routerviews + directorio, proto='http') for fileRV in archivosRV: if not os.path.isfile(directorioDescargaRV + fileRV): descarga(server=routerviews + directorio, archivo=fileRV, destino=directorioDescargaTemp, proto='http', proxy=proxy_ip_port) shutil.copy2(directorioDescargaTemp + fileRV, directorioDescargaRV) #if os.path.isfile(directorioDescargaRV + fileRV): # os.chown(directorioDescargaRV + fileRV, uid, gid) os.remove(directorioDescargaTemp + fileRV) except: descarga_log.write(fechahora + '\t' + '--' + ' routerview DOWNLOAD FAIL' + '\n')