def ifs_csv(dest, nome, idx=''): ''' Gera a lista das interfaces de rede dos Hosts cadastrados e exibe o resultado em arquivo separado por virgulas (CSV). dest contem o diretorio fornecido para salvar o relatorio. Tem que fornecer o caminho absoluto. nome contem o nome do arquivo que sera criado. idx contem o indice do host, caso nao for fornecido sera retornado todos os hosts cadastrados. ''' # Gera uma lista de tuplas com o(s) host(s) desejado(s). l = dbmanager.query_hosts_db('{0}{1}'.format(INSTALL_PATH, DB), idx) # Verifica ha host para o relatorio if len(l) > 0: try: # Cria o arquivo do relatorio no formato CSV with open('{0}{1}.csv'.format(dest, nome), 'w') as arq: # Insere as colunas no arquivo arq.writelines('"ID";"HOST";"DATA";"HORA";"ID INTERFACE";"IP";"MASCARA"\n') # Passa host a host inserindo os dados no arquivo. for i in l: # Passa host a host inserindo os dados no arquivo. lg6 = dbmanager.query_group6_db('{0}{1}'.format(INSTALL_PATH, DB), i[0]) # Para cada dados da lista, escreve no arquivo for j in lg6: # Remove o separador e separa cada valor para uma variavel para ser escrito no arquivo ipAEA = j[2].split('|') ipAEI = j[3].split('|') ipAENM = j[4].split('|') # Escreve no arquivo for a in xrange(1, len(ipAEA) - 1): arq.writelines('"{0}";"{1}";"{2}";"{3}";"{4}";"{5}";"{6}"\n'.format(i[0], i[1], j[5], j[6], ipAEI[a], ipAEA[a], ipAENM[a])) # Chama o gedit para exibir o relatorio subprocess.call(['gedit', '{0}{1}.csv'.format(dest, nome)]) # Insere sucesso no log logdbquery('SUCESSO ao criar o arquivo {0}{1}.csv'.format(dest, nome)) except: # Insere falha no log logdbquery('FALHA ao criar o arquivo {0}{1}.csv'.format(dest, nome)) print 'Falha ao criar o arquivo.' else: # Insere falha no log se nao houver hosts para gerar relatorio logdbquery('FALHA, Nenhum Host encontrado ao gerar {0}{1}.csv'.format(dest, nome)) print 'Nenhum Host encontrado.'
def ifs_txt(idx=''): ''' Gera a lista das interfaces de rede dos Hosts cadastrados e exibe o resultado em arquivo de texto. idx contem o indice do host, caso nao for fornecido sera retornado todos os hosts cadastrados. ''' # Gera uma lista de tuplas com o(s) host(s) desejado(s). l = dbmanager.query_hosts_db('{0}{1}'.format(INSTALL_PATH, DB), idx) # Verifica ha host para o relatorio if len(l) > 0: try: # Cria o arquivo do relatorio no formato TXT with open('{0}{1}ifs.txt'.format(INSTALL_PATH, TEMP_FOLDER), 'w') as arq: # Passa host a host inserindo os dados no arquivo. for i in l: # Passa host a host inserindo os dados no arquivo. lg6 = dbmanager.query_group6_db('{0}{1}'.format(INSTALL_PATH, DB), i[0]) # Para cada dados da lista, escreve no arquivo for j in lg6: # Remove o separador e separa cada valor para uma variavel para ser escrito no arquivo ipAEA = j[2].split('|') ipAEI = j[3].split('|') ipAENM = j[4].split('|') # Escreve no arquivo for a in xrange(1, len(ipAEA) - 1): arq.writelines('ID: {0}\tHOST: {1}\tDATA: {2}\tHORA: {3}\nID da Interface: {4}\nIP: {5}\nMascara: {6}\n\n'.format(i[0], i[1], j[5], j[6], ipAEI[a], ipAEA[a], ipAENM[a])) # Chama o gedit para exibir o relatorio subprocess.call(['gedit', '{0}{1}ifs.txt'.format(INSTALL_PATH, TEMP_FOLDER)]) # Insere sucesso no log logdbquery('SUCESSO ao criar o arquivo {0}{1}ifs.txt'.format(INSTALL_PATH, TEMP_FOLDER)) except: # Insere falha no log logdbquery('FALHA, Nenhum Host encontrado ao gerar {0}{1}sysusers_process.txt'.format(INSTALL_PATH, TEMP_FOLDER)) print 'Falha ao criar o arquivo.' else: # Insere falha no log se nao houver hosts para gerar relatorio logdbquery('FALHA, Nenhum Host encontrado ao gerar {0}{1}hostslists.txt'.format(INSTALL_PATH, TEMP_FOLDER)) print 'Nenhum Host encontrado.'