Coletando informações direto do FIREBIRD via D.O.S. ou SHELL

Neste artigo demonstro como é possível a execução de comandos SQL via D.O.S. ou SHELL SCRIPT diretamente de um banco de dados FIREBIRD. É de grande utilidade quando necessitamos executar remotamente comandos SQL ou para criação de relatórios gravados em arquivos.

[ Hits: 30.265 ]

Por: Claudio Mercaldo de Almeida em 10/10/2007


Em Shell Script



01. No SHELL não teremos muitas mudanças. Alias, somente vantagens. Imagine que você necessite de relatórios diários ou mudanças programadas em sua base de dados, podemos fazer tudo via crontab. É só uma idéia!

# mkdir coleta
# cd /coleta
# vi col_script.sh


#!/bin/bash
# Script de coleta - Firebird
# Claudio Mercaldo
# Versão 1.0

# *** Diretório de trabalho

cd /coleta

# *** Apaga arquivos da última coleta
# Caso estes arquivos não sejam apagados, sua coleta será adicionada ao
# arquivo antigo.
rm -fr /coleta/FORNECEDOR.TXT
rm -fr /coleta/CLIENTES.TXT

# *** Isql direto no banco - Tabela fornecedor
/opt/firebird/bin/isql '10.0.0.127:/databases/DADOS.GDB' -i '/coleta/select_fornecedor.sql' -o '/coleta/FORNECEDOR.TXT' -u sysdba -p masterkey -page 1000000


# *** Isql direto no banco - Tabela clientes
/opt/firebird/bin/isql '10.0.0.127:/databases/DADOS.GDB' -i '/coleta/select_clientes.sql' -o '/coleta/CLIENTES.TXT' -u sysdba -p masterkey -page 1000000


# *** Volta para o diretório de coleta
cd /coleta
ls -lha

02. O script de coleta já esta pronto, mas agora é necessário criar os arquivos que serão responsáveis pela coleta das informações.

# vi /coleta/select_FORNECEDOR.sql

select * from fornecedor;

# chmod +x /coleta/select_FORNECEDOR.sql

No outro digite:

# vi /coleta/select_CLIENTES.sql

select * from clientes;

# chmod +x /coleta/select_CLIENTES.sql

03. Vamos colocar as devidas permissões:

# chmod +x /coleta/col_script.sh

04. Lembrando que nestes arquivos será possível executar praticamente todos os comandos sql do Firebird (select, update, insert, alter table, etc). Muito útil!

AVISO: No meu caso o FIREBIRD está instalado no diretório de compilação (/opt/firebird/bin), caso não seja o mesmo altere diretamente no script.

05. Agora basta executar. Lembre-se que estou usando o usuário padrão do FIREBIRD (sysdba, masterkey), talvez no seu caso seja necessário alterar no script.

# sh col_script.sh

*** Verifique se os arquivos foram gerados no diretório de coleta.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Em Shell Script
   3. Diferenças - D.O.S. x Shell script
Outros artigos deste autor

Monitoramento de Serviços e Servidores

BackRE - Seu script de backup remoto

Configurando o Apache para reconhecer arquivos DWG

Compilando o Squid com autenticação PAM

Postgres e os Sistemas Alterdata

Leitura recomendada

Instalando Firebird 1.5 no Ubuntu 10.04 LTS

Interbase 6 no Slackware

Instalando o Firebird 2.5 e gerenciando com o Flamerobin

Instalando o Firebird no Debian

Interbase no Debian

  
Comentários
[1] Comentário enviado por carlosands em 16/10/2007 - 13:15h

Parabéns Chf. otimo artigo.

[2] Comentário enviado por grtprojetos em 16/02/2017 - 20:27h

Gostaria que o arquivo fosse gerado com a extensão CSV e delimitado por ponto-e-virgula. Tem como? Obrigado.

[3] Comentário enviado por cmercaldo em 22/02/2017 - 16:24h

Prezado Grtprojetos.

Diretamente pelo comando, eu não achei nenhuma solução para a sua solicitação.
Pesquisei aqui no "VOL" e achei um tópico interessante que pode resolver o seu problema:

TÓPICO: REMOVER ESPAÇOS E CARACTERES [RESOLVIDO] - (por: https://www.vivaolinux.com.br/~SuperSlackware)

Onde a melhor resposta pertence ao usuário (https://www.vivaolinux.com.br/~MarceloTheodoro)

Segue o link para a sua analise:

https://www.vivaolinux.com.br/topico/Sed-Awk-ER-Manipulacao-de-Textos-Strings/Remover-espacos-e-cara...

Assim, poderá gerar o arquivo e criar um script que possa remover os espaços e inserir uma (virgula ou ponto e virgula).

Att.
ClaudioM



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts