Commit 03013c13fb0203940ad4b53cd7deaba09048100f
1 parent
9a46a1e5
Exists in
master
and in
1 other branch
Inclusão do item 'Extrair para 3.0 no menu 'Manutenção'
git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/gerente@1435 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
3 changed files
with
297 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,280 @@ |
| 1 | +<?php | |
| 2 | +// Conexão com o banco | |
| 3 | +$server = "localhost"; | |
| 4 | +$db = "cacic"; | |
| 5 | +$user = "root"; | |
| 6 | +$pass = "w1f1t1d1"; | |
| 7 | +$dbcon = new PDO("mysql:host={$server};dbname={$db}", $user, $pass); | |
| 8 | + | |
| 9 | +// Nome do diretório temporário | |
| 10 | +$tmproot = sys_get_temp_dir(); | |
| 11 | +$tmpdir = $tmproot.'/bases_cacic2'; | |
| 12 | + | |
| 13 | + | |
| 14 | +function extrair($dbcon) { | |
| 15 | + global $tmpdir; | |
| 16 | + | |
| 17 | + $lista_tabelas = array( | |
| 18 | + "acao" => "SELECT id_acao, te_descricao_breve, te_descricao, te_nome_curto_modulo, dt_hr_alteracao, cs_situacao AS cs_opcional INTO OUTFILE '$tmpdir/acao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM acoes", | |
| 19 | + "acao_excecao" => "SELECT acao_excecao.te_node_address, acao_excecao.id_acao, tmp_redes.id_rede INTO OUTFILE '$tmpdir/acao_excecao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM acoes_excecoes AS acao_excecao INNER JOIN tmp_redes ON (acao_excecao.id_local=tmp_redes.id_local)", | |
| 20 | + "acao_rede" => "SELECT acao_rede.id_acao, tmp_redes.id_rede, acao_rede.dt_hr_coleta_forcada INTO OUTFILE '$tmpdir/acao_rede.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM acoes_redes AS acao_rede INNER JOIN tmp_redes ON (acao_rede.id_local=tmp_redes.id_local AND acao_rede.id_ip_rede=tmp_redes.id_ip_rede)", | |
| 21 | + "acao_so" => "SELECT acao_so.id_acao, tmp_redes.id_rede, acao_so.id_so INTO OUTFILE '$tmpdir/acao_so.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM acoes_so AS acao_so INNER JOIN tmp_redes ON (acao_so.id_local=tmp_redes.id_local)", | |
| 22 | + "aplicativo" => "SELECT id_aplicativo, id_so, nm_aplicativo, cs_car_inst_w9x, te_car_inst_w9x, cs_car_ver_w9x, te_car_ver_w9x, cs_car_inst_wnt, te_car_inst_wnt, cs_car_ver_wnt, te_car_ver_wnt, cs_ide_licenca, te_ide_licenca, dt_atualizacao, te_arq_ver_eng_w9x, te_arq_ver_pat_w9x, te_arq_ver_eng_wnt, te_arq_ver_pat_wnt, te_dir_padrao_w9x, te_dir_padrao_wnt, te_descritivo, in_disponibiliza_info, in_disponibiliza_info_usuario_comum, dt_registro INTO OUTFILE '$tmpdir/aplicativo.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM perfis_aplicativos_monitorados", | |
| 23 | + "aplicativo_rede" => "SELECT tmp_redes.id_rede, aplicativo_rede.id_aplicativo INTO OUTFILE '$tmpdir/aplicativo_rede.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM aplicativos_redes AS aplicativo_rede INNER JOIN tmp_redes ON (aplicativo_rede.id_ip_rede=tmp_redes.id_ip_rede)", | |
| 24 | + "aquisicao" => "SELECT id_aquisicao, dt_aquisicao, nr_processo, nm_empresa, nm_proprietario, nr_notafiscal INTO OUTFILE '$tmpdir/aquisicao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM aquisicoes", | |
| 25 | + "aquisicao_item" => "SELECT aquisicoes_item.id_tipo_licenca, aquisicoes_item.id_aquisicao, softwares.id_software, aquisicoes_item.qt_licenca, aquisicoes_item.dt_vencimento_licenca, aquisicoes_item.te_obs INTO OUTFILE '$tmpdir/aquisicao_item.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM aquisicoes_item INNER JOIN softwares ON (aquisicoes_item.id_software=softwares.id_software)", | |
| 26 | + "computador" => "SELECT tmp_computador.id_computador, @s1:=NULL id_usuario_exclusao, computador.id_so, tmp_redes.id_rede, computador.te_nome_computador AS nm_computador, computador.te_node_address, computador.te_ip AS te_ip_computador, computador.dt_hr_inclusao, @s2:=NULL dt_hr_exclusao, computador.dt_hr_ult_acesso, computador.te_versao_cacic, computador.te_versao_gercols, computador.te_palavra_chave, computador.dt_hr_coleta_forcada_estacao, computador.te_nomes_curtos_modulos, computador.id_conta, @s3:=NULL te_debugging, @s4:=NULL te_ultimo_login, @s5:=NULL dt_debug INTO OUTFILE '$tmpdir/computador.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM computadores AS computador INNER JOIN tmp_redes ON (computador.id_ip_rede=tmp_redes.id_ip_rede) INNER JOIN tmp_computador ON (computador.id_so=tmp_computador.id_so AND computador.te_node_address=tmp_computador.te_node_address), (SELECT @s:=0) AS s", | |
| 27 | + "descricao_coluna_computador" => "SELECT @s1:='DB' te_source, @s2:=CONCAT('Cacic2','_',nm_campo) te_target, te_descricao_campo AS te_description, cs_condicao_pesquisa INTO OUTFILE '$tmpdir/descricao_coluna_computador.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM descricoes_colunas_computadores", | |
| 28 | + "grupo_usuario" => "SELECT id_grupo_usuarios AS id_grupo_usuario, nm_grupo_usuarios, te_grupo_usuarios, te_menu_grupo, te_descricao_grupo, cs_nivel_administracao INTO OUTFILE '$tmpdir/grupo_usuario.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM grupo_usuarios", | |
| 29 | + "insucesso_instalacao" => "SELECT @s:=@s+1 id_insucesso_instalacao, te_ip AS te_ip_computador, te_so, id_usuario, dt_datahora, cs_indicador INTO OUTFILE '$tmpdir/insucesso_instalacao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM insucessos_instalacao, (SELECT @s:=0) AS s", | |
| 30 | + "local" => "SELECT id_local, nm_local, sg_local, te_observacao, @s1:=NULL te_debugging, @s2:=NULL dt_debug INTO OUTFILE '$tmpdir/local.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM locais", | |
| 31 | + "local_secundario" => "SELECT id_usuario, te_locais_secundarios AS id_local INTO OUTFILE '$tmpdir/local_secundario.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usuarios", | |
| 32 | + "log" => "SELECT @s:=@s+1 id_log, usuarios.id_usuario, log.dt_acao, log.cs_acao, log.nm_script, log.nm_tabela, log.te_ip_origem INTO OUTFILE '$tmpdir/log.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM log INNER JOIN usuarios ON (usuarios.id_usuario = log.id_usuario), (SELECT @s:=0) AS s", | |
| 33 | + "patrimonio" => "SELECT @s:=@s+1 id_patrimonio, @s1:=NULL id_usuario, patrimonio.id_unid_organizacional_nivel1a, @s2:=NULL id_computador, patrimonio.id_unid_organizacional_nivel2, patrimonio.dt_hr_alteracao, patrimonio.te_localizacao_complementar, patrimonio.te_info_patrimonio1, patrimonio.te_info_patrimonio2, patrimonio.te_info_patrimonio3, patrimonio.te_info_patrimonio4, patrimonio.te_info_patrimonio5, patrimonio.te_info_patrimonio6, unid_organizacional_nivel1a.id_unid_organizacional_nivel1 INTO OUTFILE '$tmpdir/patrimonio.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM patrimonio INNER JOIN unid_organizacional_nivel1a ON (patrimonio.id_unid_organizacional_nivel1a=unid_organizacional_nivel1a.id_unid_organizacional_nivel1), (SELECT @s:=0) AS s ", | |
| 34 | + "patrimonio_config_interface" => "SELECT id_etiqueta, id_local, nm_etiqueta, te_etiqueta, in_exibir_etiqueta, te_help_etiqueta, te_plural_etiqueta, nm_campo_tab_patrimonio, in_destacar_duplicidade, @s1:='' in_obrigatorio INTO OUTFILE '$tmpdir/patrimonio_config_interface.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM patrimonio_config_interface", | |
| 35 | + "rede" => "SELECT tmp_redes.id_rede, rede.id_local, rede.id_servidor_autenticacao, rede.id_ip_rede AS te_ip_rede, rede.nm_rede, rede.te_observacao, rede.nm_pessoa_contato1, rede.nm_pessoa_contato2, rede.nu_telefone1, rede.te_email_contato2, rede.nu_telefone2, rede.te_email_contato1, rede.te_serv_cacic, rede.te_serv_updates, rede.te_path_serv_updates, rede.nm_usuario_login_serv_updates, rede.te_senha_login_serv_updates, rede.nu_porta_serv_updates, rede.te_mascara_rede, rede.dt_verifica_updates, rede.nm_usuario_login_serv_updates_gerente, rede.te_senha_login_serv_updates_gerente, rede.nu_limite_ftp, rede.cs_permitir_desativar_srcacic, @s1:=NULL te_debugging, @s2:=NULL dt_debug INTO OUTFILE '$tmpdir/rede.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM redes AS rede INNER JOIN tmp_redes ON (rede.id_local=tmp_redes.id_local AND rede.id_ip_rede=tmp_redes.id_ip_rede)", | |
| 36 | + "rede_grupo_ftp" => "SELECT t1.id_ftp, t1.id_rede, t2.id_computador, t1.nu_hora_inicio, t1.nu_hora_fim INTO OUTFILE '$tmpdir/rede_grupo_ftp.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM ( SELECT rede_grupo_ftp.id_ftp, tmp_redes.id_rede, tmp_computador.id_computador, rede_grupo_ftp.nu_hora_inicio, rede_grupo_ftp.nu_hora_fim FROM redes_grupos_ftp AS rede_grupo_ftp INNER JOIN tmp_redes ON (rede_grupo_ftp.id_local=tmp_redes.id_local) AND (rede_grupo_ftp.id_ip_rede=tmp_redes.id_ip_rede) INNER JOIN tmp_computador ON (rede_grupo_ftp.id_ip_estacao=tmp_computador.te_ip) GROUP BY id_ftp ) t1 INNER JOIN ( SELECT tmp_computador.id_computador, @s1:=NULL id_usuario_exclusao, computador.id_so, tmp_redes.id_rede, computador.te_nome_computador AS nm_computador, computador.te_node_address, computador.te_ip AS te_ip_computador, computador.dt_hr_inclusao, @s2:=NULL dt_hr_exclusao, computador.dt_hr_ult_acesso, computador.te_versao_cacic, computador.te_versao_gercols, computador.te_palavra_chave, computador.dt_hr_coleta_forcada_estacao, computador.te_nomes_curtos_modulos, computador.id_conta, @s3:=NULL te_debugging, @s4:=NULL te_ultimo_login, @s5:=NULL dt_debug FROM computadores AS computador INNER JOIN tmp_redes ON (computador.id_ip_rede=tmp_redes.id_ip_rede) INNER JOIN tmp_computador ON (computador.id_so=tmp_computador.id_so) AND (computador.te_node_address=tmp_computador.te_node_address), (SELECT @s:=0) AS s ) t2 ON (t1.id_computador=t2.id_computador)", | |
| 37 | + "rede_versao_modulo" => "SELECT @s:=@s+1 id_rede_versao_modulo, tmp_redes.id_rede, rede_versao_modulo.nm_modulo, rede_versao_modulo.te_versao_modulo, rede_versao_modulo.dt_atualizacao, rede_versao_modulo.cs_tipo_so, rede_versao_modulo.te_hash INTO OUTFILE '$tmpdir/rede_versao_modulo.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM redes_versoes_modulos AS rede_versao_modulo INNER JOIN tmp_redes ON (rede_versao_modulo.id_local=tmp_redes.id_local) AND rede_versao_modulo.id_ip_rede=tmp_redes.id_ip_rede, (SELECT @s:=0) AS s", | |
| 38 | + "servidor_autenticacao" => "SELECT id_servidor_autenticacao, nm_servidor_autenticacao, @s1:='' nm_servidor_autenticacao_dns, te_ip_servidor_autenticacao, nu_porta_servidor_autenticacao, id_tipo_protocolo, nu_versao_protocolo, te_atributo_identificador, @s2:=NULL te_atributo_identificador_alternativo, te_atributo_retorna_nome, te_atributo_retorna_email, @s3:=NULL te_atributo_retorna_telefone, @s4:=NULL te_atributo_status_conta, @s5:='' te_atributo_valor_status_conta_valida, te_observacao, in_ativo INTO OUTFILE '$tmpdir/servidor_autenticacao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM servidores_autenticacao", | |
| 39 | + "so" => "SELECT id_so, te_desc_so, sg_so, te_so, in_mswindows INTO OUTFILE '$tmpdir/so.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM so", | |
| 40 | + "software" => "SELECT id_software, @s1:=NULL id_tipo_software, nm_software, te_descricao_software, qt_licenca, nr_midia, te_local_midia, te_obs INTO OUTFILE '$tmpdir/software.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM softwares AS software", | |
| 41 | + "software_estacao" => "SELECT tmp_computador.id_computador, softwares_estacao.id_software, softwares_estacao.id_aquisicao_particular AS id_aquisicao, softwares_estacao.nr_patrimonio, softwares_estacao.dt_autorizacao, softwares_estacao.dt_expiracao_instalacao, softwares_estacao.id_aquisicao_particular, softwares_estacao.dt_desinstalacao, softwares_estacao.te_observacao, softwares_estacao.nr_patr_destino INTO OUTFILE '$tmpdir/software_estacao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM tmp_computador INNER JOIN softwares_inventariados_estacoes ON (tmp_computador.te_node_address=softwares_inventariados_estacoes.te_node_address AND tmp_computador.id_so = softwares_inventariados_estacoes.id_so) INNER JOIN softwares_inventariados ON (softwares_inventariados_estacoes.id_software_inventariado=softwares_inventariados.id_software_inventariado) INNER JOIN softwares_estacao ON (softwares_estacao.id_software=softwares_inventariados.id_software)", | |
| 42 | + "srcacic_chat" => "SELECT @s:=@s+1 id_srcacic_chat, id_conexao AS id_srcacic_conexao, dt_hr_mensagem, te_mensagem, cs_origem INTO OUTFILE '$tmpdir/srcacic_chat.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM srcacic_chats, (SELECT @s:=0) AS s", | |
| 43 | + "srcacic_conexao" => "SELECT id_conexao AS id_srcacic_conexao, id_sessao AS id_srcacic_sessao, id_usuario_cli, id_so_cli, te_node_address_cli, id_so_cli, te_documento_referencial, te_motivo_conexao, dt_hr_inicio_conexao, dt_hr_ultimo_contato INTO OUTFILE '$tmpdir/srcacic_conexao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM srcacic_conexoes", | |
| 44 | + "srcacic_sessao" => "SELECT id_sessao AS id_srcacic_sessao, tmp_computador.id_computador, dt_hr_inicio_sessao, nm_acesso_usuario_srv, nm_completo_usuario_srv, te_email_usuario_srv, dt_hr_ultimo_contato INTO OUTFILE '$tmpdir/srcacic_sessao.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM srcacic_sessoes INNER JOIN tmp_computador ON (tmp_computador.id_so=srcacic_sessoes.id_so_srv AND tmp_computador.te_node_address=srcacic_sessoes.te_node_address_srv)", | |
| 45 | + "srcacic_transf" => "SELECT @s:=@s+1 id_srcacic_transf, id_conexao AS id_srcacic_conexao, dt_systemtime, nu_duracao, te_path_origem, te_path_destino, nm_arquivo, nu_tamanho_arquivo, cs_status, cs_operacao INTO OUTFILE '$tmpdir/srcacic_transf.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM srcacic_transfs, (SELECT @s:=0) AS s", | |
| 46 | + "teste" => "SELECT id_transacao, te_linha INTO OUTFILE '$tmpdir/teste.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM testes", | |
| 47 | + "tipo_licenca" => "SELECT id_tipo_licenca, te_tipo_licenca INTO OUTFILE '$tmpdir/tipo_licenca.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM tipos_licenca", | |
| 48 | + "tipo_software" => "SELECT id_tipo_software, te_descricao_tipo_software INTO OUTFILE '$tmpdir/tipo_software.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM tipos_software", | |
| 49 | + "tipo_uorg" => "SELECT @s1:=0 id_tipo_uorg, @s2:='Cacic2' nm_tipo_uorg, @s3:=NULL tedescricao INTO OUTFILE '$tmpdir/tipo_uorg.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n'", | |
| 50 | + "uorg" => "SELECT tmp_uorg.id_uorg, @s1:=NULL id_uorg_pai, @s2:='0' id_tipo_uorg, @s3:=NULL id_local, uorg1.nm_unid_organizacional_nivel1 AS nm_uorg, uorg1.te_endereco_uon1 AS te_endereco, uorg1.te_bairro_uon1 AS te_bairro, uorg1.te_cidade_uon1 AS te_cidade, uorg1.te_uf_uon1 AS te_uf, uorg1.nm_responsavel_uon1 AS nm_responsavel, uorg1.te_email_responsavel_uon1 AS te_responsavel_email, uorg1.nu_tel1_responsavel_uon1 AS nu_responsavel_tel1, uorg1.nu_tel2_responsavel_uon1 AS nu_responsavel_tel2 FROM unid_organizacional_nivel1 uorg1 INNER JOIN tmp_uorg ON (uorg1.id_unid_organizacional_nivel1=tmp_uorg.id_uorg1) WHERE tmp_uorg.id_uorg1a IS NULL UNION ALL SELECT tmp_uorg.id_uorg, t.id_uorg_pai AS id_uorg_pai, @s1:='0' id_tipo_uorg, @s2:=NULL id_local, uorg1a.nm_unid_organizacional_nivel1a AS nm_uorg, @s3:=NULL te_endereco, @s4:=NULL te_bairro, @s5:=NULL te_cidade, @s6:=NULL te_uf, @s7:=NULL nm_responsavel, @s8:=NULL te_responsavel_email, @s9:=NULL nu_responsavel_tel1, @s10:=NULL nu_responsavel_tel2 FROM unid_organizacional_nivel1a uorg1a INNER JOIN tmp_uorg ON (uorg1a.id_unid_organizacional_nivel1a=tmp_uorg.id_uorg1a) INNER JOIN (SELECT tmp_uorg.id_uorg AS id_uorg_pai, u1.id_unid_organizacional_nivel1 FROM unid_organizacional_nivel1 u1 INNER JOIN tmp_uorg ON (tmp_uorg.id_uorg1=u1.id_unid_organizacional_nivel1) WHERE tmp_uorg.id_uorg1a IS NULL) t ON (uorg1a.id_unid_organizacional_nivel1=t.id_unid_organizacional_nivel1) WHERE tmp_uorg.id_uorg2 IS NULL UNION ALL SELECT tmp_uorg.id_uorg, t.id_uorg_pai AS id_uorg_pai, @s1:='0' id_tipo_uorg, uorg2.id_local AS id_local, uorg2.nm_unid_organizacional_nivel2 AS nm_uorg, uorg2.te_endereco_uon2 AS te_endereco, uorg2.te_bairro_uon2 AS te_bairro, uorg2.te_cidade_uon2 AS te_cidade, uorg2.te_uf_uon2 AS te_uf, uorg2.nm_responsavel_uon2 AS nm_responsavel, uorg2.te_email_responsavel_uon2 AS te_responsavel_email, uorg2.nu_tel1_responsavel_uon2 AS nu_responsavel_tel1, uorg2.nu_tel2_responsavel_uon2 AS nu_responsavel_tel2 FROM unid_organizacional_nivel2 uorg2 INTO OUTFILE '$tmpdir/uorg.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' INNER JOIN tmp_uorg ON (uorg2.id_unid_organizacional_nivel2=tmp_uorg.id_uorg2) INNER JOIN (SELECT tmp_uorg.id_uorg AS id_uorg_pai, u1a.id_unid_organizacional_nivel1a FROM unid_organizacional_nivel1a u1a INNER JOIN tmp_uorg ON (tmp_uorg.id_uorg1a=u1a.id_unid_organizacional_nivel1a) WHERE tmp_uorg.id_uorg2 IS NULL) t ON (uorg2.id_unid_organizacional_nivel1a=t.id_unid_organizacional_nivel1a) ORDER BY id_uorg", | |
| 51 | + "unid_organizacional_nivel1" => "SELECT id_unid_organizacional_nivel1, nm_unid_organizacional_nivel1, te_endereco_uon1, te_bairro_uon1, te_cidade_uon1, te_uf_uon1, nm_responsavel_uon1, te_email_responsavel_uon1, nu_tel1_responsavel_uon1, nu_tel2_responsavel_uon1 INTO OUTFILE '$tmpdir/unid_organizacional_nivel1.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM unid_organizacional_nivel1", | |
| 52 | + "unid_organizacional_nivel1a" => "SELECT id_unid_organizacional_nivel1a, id_unid_organizacional_nivel1, nm_unid_organizacional_nivel1a INTO OUTFILE '$tmpdir/unid_organizacional_nivel1a.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM unid_organizacional_nivel1a WHERE id_unid_organizacional_nivel1 != 0", | |
| 53 | + "unid_organizacional_nivel2" => "SELECT id_unid_organizacional_nivel2, id_local, id_unid_organizacional_nivel1a, nm_unid_organizacional_nivel2, te_endereco_uon2, te_bairro_uon2, te_cidade_uon2, te_uf_uon2, nm_responsavel_uon2, te_email_responsavel_uon2, nu_tel1_responsavel_uon2, nu_tel2_responsavel_uon2, dt_registro INTO OUTFILE '$tmpdir/unid_organizacional_nivel2.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM unid_organizacional_nivel2 WHERE id_local != 0", | |
| 54 | + "usb_device" => "SELECT tmp_usb.id_usb_device, usb_vendors.id_vendor AS id_usb_vendor, usb_devices.nm_device AS nm_usb_device, usb_devices.te_observacao, @s1:=NULL dt_registro, usb_devices.id_device INTO OUTFILE '$tmpdir/usb_device.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usb_devices INNER JOIN tmp_usb ON (tmp_usb.id_device=usb_devices.id_device AND tmp_usb.id_vendor=usb_devices.id_vendor AND tmp_usb.nm_device=usb_devices.nm_device) INNER JOIN usb_vendors ON (usb_devices.id_vendor=usb_vendors.id_vendor) WHERE tmp_usb.repeticao = 1", | |
| 55 | + "usb_log" => "SELECT @s:=@s+1 id_usb_log, tmp_usb.id_usb_device, tmp_computador.id_computador, dt_event, cs_event, usb_logs.id_device INTO OUTFILE '$tmpdir/usb_log.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usb_logs INNER JOIN tmp_computador ON (tmp_computador.id_so=usb_logs.id_so AND tmp_computador.te_node_address=usb_logs.te_node_address) INNER JOIN tmp_usb ON (tmp_usb.id_device=usb_logs.id_device AND tmp_usb.id_vendor=usb_logs.id_vendor), (SELECT @s:=0) AS s", | |
| 56 | + "usb_vendor" => "SELECT id_vendor AS id_usb_vendor, nm_vendor AS nm_usb_vendor, te_observacao, @s1:=NULL dt_registro INTO OUTFILE '$tmpdir/usb_vendor.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usb_vendors", | |
| 57 | + "usuario" => "SELECT id_usuario, id_local, id_servidor_autenticacao, id_grupo_usuarios AS id_grupo_usuario, @s1:=NULL id_usuario_ldap, nm_usuario_acesso, nm_usuario_completo, @s2:=NULL nm_usuario_completo_ldap, @s3:=CONCAT('Cacic2','_',nm_usuario_completo) te_senha, dt_log_in, te_emails_contato, te_telefones_contato INTO OUTFILE '$tmpdir/usuario.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usuarios" | |
| 58 | + ); | |
| 59 | + | |
| 60 | + while($tabela = current($lista_tabelas)) { | |
| 61 | + | |
| 62 | + $filename = $tmpdir."/".key($lista_tabelas).".csv"; | |
| 63 | + echo "Carregando dados de ".key($lista_tabelas)."... "; | |
| 64 | + $pesquisa = $dbcon->prepare($tabela); | |
| 65 | + $pesquisa->execute(); | |
| 66 | + echo "feito.<br>"; | |
| 67 | + next($lista_tabelas); | |
| 68 | + } | |
| 69 | +} | |
| 70 | + | |
| 71 | + | |
| 72 | +function Zip($source, $destination){ | |
| 73 | + // Função que cira o arquivo zip a partir do diretorio informado | |
| 74 | + $zip = new ZipArchive(); | |
| 75 | + if (!$zip->open($destination, ZIPARCHIVE::CREATE)){ | |
| 76 | + return false; | |
| 77 | + } | |
| 78 | + $source = str_replace('\\', '/', realpath($source)); | |
| 79 | + if (is_dir($source) === true){ | |
| 80 | + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); | |
| 81 | + | |
| 82 | + foreach ($files as $file){ | |
| 83 | + $file = str_replace('\\', '/', $file); | |
| 84 | + | |
| 85 | + // Ignore "." and ".." folders | |
| 86 | + if( in_array(substr($file, strrpos($file, '/')+1), array('.', '..')) ) | |
| 87 | + continue; | |
| 88 | + | |
| 89 | + $file = realpath($file); | |
| 90 | + | |
| 91 | + if (is_dir($file) === true){ | |
| 92 | + $zip->addEmptyDir(str_replace($source . '/', '', $file . '/')); | |
| 93 | + } | |
| 94 | + else if (is_file($file) === true){ | |
| 95 | + $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file)); | |
| 96 | + } | |
| 97 | + } | |
| 98 | + } | |
| 99 | + else if (is_file($source) === true){ | |
| 100 | + $zip->addFromString(basename($source), file_get_contents($source)); | |
| 101 | + } | |
| 102 | + return $zip->close(); | |
| 103 | +} | |
| 104 | + | |
| 105 | + | |
| 106 | +function fix_local_secundario($filename) { | |
| 107 | + // Altera modelo dos locais secundarios de usuário de acordo com o novo padrão | |
| 108 | + $local_sec = file_get_contents($filename); | |
| 109 | + $locais = explode("\n", $local_sec); // Separa as linhas em arrays | |
| 110 | + $local_secundario = ""; | |
| 111 | + | |
| 112 | + while ($line = current($locais)) { | |
| 113 | + $linearray = explode(";", $line); // Separa id_usuario e id_local nas linhas | |
| 114 | + if ($linearray[1]!='""') { | |
| 115 | + $id_local = explode(",", $linearray[1]); // Separa id_local diferentes | |
| 116 | + | |
| 117 | + foreach ($id_local as $fix_id_local) { | |
| 118 | + // Coloca os registros de id_local entre "" se não estiver | |
| 119 | + if($fix_id_local[0] != '"') { | |
| 120 | + $fix_id_local = '"'.$fix_id_local; | |
| 121 | + } | |
| 122 | + if($fix_id_local[strlen($fix_id_local)-1] != '"') { | |
| 123 | + $fix_id_local = $fix_id_local . '"'; | |
| 124 | + } | |
| 125 | + | |
| 126 | + $local_secundario .= $linearray[0] . ";" . $fix_id_local . "\n"; | |
| 127 | + } | |
| 128 | + } | |
| 129 | + next($locais); | |
| 130 | + } | |
| 131 | + // Sobrepoe o arquivo de locais_secundarios com a versão corrigida | |
| 132 | + file_put_contents($filename, $local_secundario); | |
| 133 | +} | |
| 134 | + | |
| 135 | + | |
| 136 | +function fix_null_time($filename) { | |
| 137 | + // Altera valor de datas com "0000-00-00 00:00:00" para \N para funcionar no postgres | |
| 138 | + $dados = file_get_contents($filename); | |
| 139 | + $dados_corrigidos = str_replace('"0000-00-00 00:00:00"', '\N', $dados); | |
| 140 | + file_put_contents($filename, $dados_corrigidos); | |
| 141 | +} | |
| 142 | + | |
| 143 | + | |
| 144 | +function fix_rede_grupo_ftp($filename) { | |
| 145 | + //Corrige a coluna nu_hora_inicio para o padrao correto de tempo | |
| 146 | + $grupos = file_get_contents($filename); | |
| 147 | + $dados_corrigidos = ""; | |
| 148 | + | |
| 149 | + $array_linhas = explode("\n", $grupos); | |
| 150 | + foreach ($array_linhas as $linha) { | |
| 151 | + $coluna = explode(";", $linha); | |
| 152 | + if(count($coluna) == 1) { | |
| 153 | + continue; | |
| 154 | + } | |
| 155 | + // Converte o formato de horario da coluna nu_hora_inicio | |
| 156 | + $nu_hora_inicio = substr($coluna[3], 1, -1); | |
| 157 | + $nu_hora_inicio = '"'.date("Y-m-d H:i:s",$nu_hora_inicio).'"'; | |
| 158 | + | |
| 159 | + $dados_corrigidos .= $coluna[0].";".$coluna[1].";".$coluna[2].";".$nu_hora_inicio.";\N\n"; | |
| 160 | + } | |
| 161 | + // Sobrepoe o arquivo de rede_grupo_ftp com a versão corrigida | |
| 162 | + file_put_contents($filename, $dados_corrigidos); | |
| 163 | +} | |
| 164 | + | |
| 165 | + | |
| 166 | +function fix_quoted_data($filename) { | |
| 167 | + // Remove aspas duplas de registros | |
| 168 | + $dados = file_get_contents($filename); | |
| 169 | + $dados_corrigidos = str_replace('\"', '', $dados); | |
| 170 | + file_put_contents($filename, $dados_corrigidos); | |
| 171 | +} | |
| 172 | + | |
| 173 | + | |
| 174 | +function create_temptables($dbcon) { | |
| 175 | + // Cria e popula as tabelas temporarias "tmp_redes" , "tmp_computador" , "tmp_uorg" e "tmp_usb" | |
| 176 | + global $tmpdir; | |
| 177 | + | |
| 178 | + $tmp_redes_file = $tmpdir."/tmp_redes.csv"; | |
| 179 | + $tmp_computador_file = $tmpdir."/tmp_computador.csv"; | |
| 180 | + $tmp_uorg_file = $tmpdir."/tmp_uorg.csv"; | |
| 181 | + $tmp_usb_file = $tmpdir."/tmp_usb.csv"; | |
| 182 | + | |
| 183 | + $dbcon->exec("DROP TABLE IF EXISTS tmp_redes"); | |
| 184 | + $dbcon->exec("SELECT @s:=@s+1 id_rede, id_ip_rede, id_local INTO OUTFILE '$tmp_redes_file' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM redes, (SELECT @s:=0) AS s"); | |
| 185 | + $dbcon->exec("CREATE TABLE tmp_redes (id_rede int(11) NOT NULL, id_ip_rede char(15) NOT NULL, id_local int(11), PRIMARY KEY (id_rede))"); | |
| 186 | + $dbcon->exec("LOAD DATA INFILE '$tmp_redes_file' INTO TABLE tmp_redes FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n'"); | |
| 187 | + unlink($tmp_redes_file); | |
| 188 | + | |
| 189 | + $dbcon->exec("DROP TABLE IF EXISTS tmp_computador"); | |
| 190 | + $dbcon->exec("SELECT @s:=@s+1 id_computador, id_so, te_node_address, te_ip INTO OUTFILE '$tmp_computador_file' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM computadores, (SELECT @s:=0) AS s"); | |
| 191 | + $dbcon->exec("CREATE TABLE tmp_computador (id_computador int(11) NOT NULL, id_so int(11) NOT NULL, te_node_address char(17) NOT NULL, te_ip char(15) DEFAULT NULL, PRIMARY KEY (id_computador))"); | |
| 192 | + $dbcon->exec("LOAD DATA INFILE '$tmp_computador_file' INTO TABLE tmp_computador FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n'"); | |
| 193 | + unlink($tmp_computador_file); | |
| 194 | + | |
| 195 | + $dbcon->exec("DROP TABLE IF EXISTS tmp_uorg"); | |
| 196 | + $dbcon->exec("SELECT @s:=@s+1 id_uorg, t.id_uorg1, t.id_uorg1a, t.id_uorg2 INTO OUTFILE '$tmp_uorg_file' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM (SELECT u1.id_unid_organizacional_nivel1 AS id_uorg1, @s1:=NULL id_uorg1a, @s2:=NULL id_uorg2 FROM unid_organizacional_nivel1 u1 UNION ALL SELECT u1.id_unid_organizacional_nivel1 AS id_uorg1, u1a.id_unid_organizacional_nivel1a AS id_uorg1a, @s1:=NULL id_uorg2 FROM unid_organizacional_nivel1a u1a INNER JOIN unid_organizacional_nivel1 u1 ON (u1.id_unid_organizacional_nivel1=u1a.id_unid_organizacional_nivel1) UNION ALL SELECT u1.id_unid_organizacional_nivel1 AS id_uorg1, u1a.id_unid_organizacional_nivel1a AS id_uorg1a, u2.id_unid_organizacional_nivel2 AS id_uorg2 FROM unid_organizacional_nivel2 u2 INNER JOIN unid_organizacional_nivel1a u1a ON (u2.id_unid_organizacional_nivel1a=u1a.id_unid_organizacional_nivel1a) INNER JOIN unid_organizacional_nivel1 u1 ON (u1.id_unid_organizacional_nivel1=u1a.id_unid_organizacional_nivel1)) t, (SELECT @s:=0) AS s"); | |
| 197 | + $dbcon->exec("CREATE TABLE tmp_uorg (id_uorg int(11) NOT NULL, id_uorg1 int(11) DEFAULT NULL, id_uorg1a int(11) DEFAULT NULL, id_uorg2 int(11) DEFAULT NULL, PRIMARY KEY (id_uorg))"); | |
| 198 | + $dbcon->exec("LOAD DATA INFILE '$tmp_uorg_file' INTO TABLE tmp_uorg FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n'"); | |
| 199 | + unlink($tmp_uorg_file); | |
| 200 | + | |
| 201 | + $dbcon->exec("DROP TABLE IF EXISTS tmp_usb"); | |
| 202 | + $dbcon->exec("SELECT COUNT(id_device) AS repeticao, @s:=@s+1 id_usb_device, id_device, id_vendor, nm_device INTO OUTFILE '$tmp_usb_file' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM usb_devices, (SELECT @s:=0) AS s GROUP BY id_device, id_vendor ORDER BY repeticao DESC, id_vendor, id_usb_device"); | |
| 203 | + $dbcon->exec("CREATE TABLE tmp_usb (repeticao int(2) NOT NULL, id_usb_device int(11) NOT NULL, id_device char(5) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, id_vendor char(5) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, nm_device char(127) NOT NULL, PRIMARY KEY (id_usb_device))"); | |
| 204 | + $dbcon->exec("LOAD DATA INFILE '$tmp_usb_file' INTO TABLE tmp_usb FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n'"); | |
| 205 | + unlink($tmp_usb_file); | |
| 206 | +} | |
| 207 | + | |
| 208 | + | |
| 209 | +// Execuções | |
| 210 | +echo "Iniciando criação do arquivo de exportação<br>"; | |
| 211 | + | |
| 212 | +// Remove diretório se ele já existir | |
| 213 | +if (file_exists($tmpdir)){ | |
| 214 | + foreach (glob($tmpdir.'/*') as $filename) { | |
| 215 | + unlink($filename); | |
| 216 | + } | |
| 217 | + rmdir($tmpdir); | |
| 218 | +} | |
| 219 | + | |
| 220 | +// Cria diretório temporário para o import | |
| 221 | +mkdir($tmpdir); | |
| 222 | +chmod($tmpdir, 0777); | |
| 223 | + | |
| 224 | +// Cria tabelas temporárias | |
| 225 | +create_temptables($dbcon); | |
| 226 | + | |
| 227 | +// Realiza a extração | |
| 228 | +extrair($dbcon); | |
| 229 | + | |
| 230 | +// Correções de compatibilidade | |
| 231 | +fix_local_secundario($tmpdir."/local_secundario.csv"); | |
| 232 | +fix_null_time($tmpdir."/acao.csv"); | |
| 233 | +fix_null_time($tmpdir."/aplicativo.csv"); | |
| 234 | +fix_null_time($tmpdir."/unid_organizacional_nivel2.csv"); | |
| 235 | +fix_rede_grupo_ftp($tmpdir."/rede_grupo_ftp.csv"); | |
| 236 | +fix_quoted_data($tmpdir."/usb_device.csv"); | |
| 237 | + | |
| 238 | +// Deleta tabelas temporárias | |
| 239 | +$dbcon->exec("DROP TABLE tmp_redes"); | |
| 240 | +$dbcon->exec("DROP TABLE tmp_computador"); | |
| 241 | +$dbcon->exec("DROP TABLE tmp_uorg"); | |
| 242 | +$dbcon->exec("DROP TABLE tmp_usb"); | |
| 243 | + | |
| 244 | +// Gera um arquivo .zip com os dados | |
| 245 | +$zipfile = $tmproot."/bases_cacic2_".date("Y-m-d_H:i:s").".zip"; | |
| 246 | +Zip($tmpdir, $zipfile); | |
| 247 | +chmod($zipfile, 0777); | |
| 248 | + | |
| 249 | +// Deleta o diretorio temporario | |
| 250 | +foreach (glob($tmpdir.'/*') as $filename) { | |
| 251 | + unlink($filename); | |
| 252 | +} | |
| 253 | +rmdir($tmpdir); | |
| 254 | + | |
| 255 | +echo "O arquivo {$zipfile} foi criado.<br>"; | |
| 256 | + | |
| 257 | +// Fecha conexão com o banco | |
| 258 | +$dbcon = null; | |
| 259 | + | |
| 260 | + | |
| 261 | +// Permite o download do arquivo | |
| 262 | +if (file_exists($zipfile)) { | |
| 263 | + header('Content-Description: File Transfer'); | |
| 264 | + header('Content-Type: application/zip'); | |
| 265 | + header('Content-Disposition: attachment; filename='.basename($zipfile)); | |
| 266 | + header('Content-Transfer-Encoding: binary'); | |
| 267 | + header('Expires: 0'); | |
| 268 | + header('Cache-Control: must-revalidate'); | |
| 269 | + header('Pragma: public'); | |
| 270 | + header('Content-Length: ' . filesize($zipfile)); | |
| 271 | + ob_clean(); | |
| 272 | + flush(); | |
| 273 | + readfile($zipfile); | |
| 274 | + exit; | |
| 275 | +} | |
| 276 | + | |
| 277 | + | |
| 278 | +// Redireciona para a pagina anterior | |
| 279 | +header("Location: extrator.php"); | |
| 280 | +?> | |
| 0 | 281 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +<html> | |
| 2 | + <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> | |
| 3 | + <body> | |
| 4 | + Clique no botão abaixo para extrair os dados do banco do cacic 2.6 usando o padrão do banco de dados da versão 3.0<br> | |
| 5 | + Obs: Esse processo pode demorar alguns minutos<br><br> | |
| 6 | + <center><button onclick="window.location.href='extrai_cacic30.php'">Extrair dados</button></center> | |
| 7 | + | |
| 8 | + Todos os registros de aquisicao_item com um id_software não existente na tabela software serão ignorados.<br> | |
| 9 | + Todos os registros de computador com id_ip_rede = 0.0.0.0 serão ignorados.<br> | |
| 10 | + Todos os registros de rede_grupo_ftp com id_ftp repetidos serão ignorados.<br> | |
| 11 | + Todos os registros de unid_organizacional_nivel1a com id do id_unid_organizacional_nivel1 = 0 serão ignorados.<br> | |
| 12 | + Todos os registros de unid_organizacional_nivel2 com id_local = 0 serão ignorados.<br> | |
| 13 | + Todos os registros de usb_device com nm_device e id_vendor e id_device repetidos serão ignorados.<br> | |
| 14 | + Todas as aspas duplas dos registros serão removidas. | |
| 15 | + </body> | |
| 16 | +</html> | |
| 0 | 17 | \ No newline at end of file | ... | ... |
language/pt_BR/menu_adm.txt
| ... | ... | @@ -39,6 +39,7 @@ |
| 39 | 39 | ..Atualização Especial|admin/atualizacao_especial.php|mainFrame||Atualização de Scripts e Afins |
| 40 | 40 | ..Consulta Especial|admin/consulta_especial.php|mainFrame||Consulta Informações do Servidor |
| 41 | 41 | ..Tradutor|admin/tradutor.php|mainFrame||Tradução de textos e mensagens do CACIC |
| 42 | +..Extrair para 3.0|admin/extrator.php|mainFrame||Extracao de dados do cacic 2.6 para o 3.0 | |
| 42 | 43 | .<b>Computadores</b>||mainFrame|imgs/config_gerais.gif |
| 43 | 44 | ..Consulta|relatorios/computadores.php|mainFrame||Consulta de informações de computadores |
| 44 | 45 | ..Navegação|relatorios/navegacao.php|mainFrame||Navegação pelos computadores da rede | ... | ... |