Olá comunidade, peço ajuda pra quem trabalha com Postgres em ambiente Linux e que também escreve Shell-scripts.
Preciso fazer uma rotina de backup de uma base em Postgresql 8.2.4.
Existem centenas de tabelas na base; todas as tabelas estão no formato bhXXX_h_YYYY_MM_DD, onde XXX é o rótulo de um tipo de tabela e YYYY_MM_DD refere-se à data de criação da tabela.
Eis exemplos: bheqp_h_2009_01_09, bhmul_h_2009_01_09 , bhpas_h_2009_01_09, bhpds_h_2009_01_09, etc.
Fiz uma cópia de dados de uma tabela do servidor através do pgAdmin e obtive o seguinte comando:
pg_dump.exe --host 10.98.0.83 --port 5432 --username sage --format plain --data-only --verbose --file "C:\teste.sql" --table ""public"."bheqp_h_2009_01_09"" bhcolsl_ems_sage
Preciso fazer um programa/script para rodar , que o usuário entre com a data inicial e final e execute o comando acima de acordo com os parâmetros das datas; O arquivo gerado tem que ter o mesmo nome da tabela copiada.
Seria algo assim como o pseudo-codigo abaixo:
--------------------------------------- ./copy_tabelas 2010-01-01 2010-01-31 ---------------------------------------
tipos_tabelas[] = { 'mul', 'eqp', 'pas', 'pds', 'lia' };
For (i=0; i < tipos_tabelas.lenght; i++) {
data_aux = data_inicial; While (data_aux <= data_final) { Nome_arquivo = data_aux || '.dados';
EXCUTAR pg_dump.exe --host 10.98.0.83 --port 5432 --username sage --format plain --data-only --verbose --file "<< Nome_arquivo >>" --table ""public"."bheqp_h_<<data_aux>>"" bhcolsl_ems_sage
data_aux = data_aux + 1; } }
Eu gostaria de saber como fazer isso em Shell-script. Se alguém puder dar um help.
Desde já agradeço. Att.
NEWTON TEIXEIRA DO N. JR.
Aviso: "O emitente desta mensagem é responsável por seu conteúdo e endereçamento. Cabe ao destinatário cuidar quanto ao tratamento adequado. Sem a devida autorização, a divulgação, a reprodução, a distribuição ou qualquer outra ação em desconformidade com as normas internas da ELETRONORTE S/A são proibidas e passíveis de sanção disciplinar, cível e criminal. Esta mensagem pode ser monitorada".
Newton,
Eu acho shell script bem legal... mas já que você já tem o pseudo algoritmo, eu recomendo você escrever isso em Python (www.python.org)... Hoje a maioria das distribuições já possui o interpretador Python instalado por padrão.
[]'s,
Leonardo Andrade.
2010/5/3 Newton Teixeira do Nascimento Júnior newton.junior@eletronorte.gov.br:
Olá comunidade, peço ajuda pra quem trabalha com Postgres em ambiente Linux e que também escreve Shell-scripts.
Preciso fazer uma rotina de backup de uma base em Postgresql 8.2.4.
Existem centenas de tabelas na base; todas as tabelas estão no formato bhXXX_h_YYYY_MM_DD,
onde XXX é o rótulo de um tipo de tabela e YYYY_MM_DD refere-se à data de criação da tabela.
Eis exemplos: bheqp_h_2009_01_09, bhmul_h_2009_01_09 , bhpas_h_2009_01_09, bhpds_h_2009_01_09, etc.
Fiz uma cópia de dados de uma tabela do servidor através do pgAdmin e obtive o seguinte comando:
pg_dump.exe --host 10.98.0.83 --port 5432 --username sage
--format plain --data-only --verbose --file "C:\teste.sql" --table ""public"."bheqp_h_2009_01_09"" bhcolsl_ems_sage
Preciso fazer um programa/script para rodar , que o usuário entre com a data inicial e final e execute o comando acima
de acordo com os parâmetros das datas; O arquivo gerado tem que ter o mesmo nome da tabela copiada.
Seria algo assim como o pseudo-codigo abaixo:
./copy_tabelas 2010-01-01 2010-01-31
tipos_tabelas[] = { ‘mul’, ‘eqp’, ‘pas’, ‘pds’, ‘lia’ };
For (i=0; i < tipos_tabelas.lenght; i++) {
data_aux = data_inicial;
While (data_aux <= data_final) {
Nome_arquivo = data_aux || ‘.dados’;
EXCUTAR pg_dump.exe --host 10.98.0.83 --port 5432 --username sage
--format plain --data-only --verbose --file "<< Nome_arquivo >>" --table ""public"."bheqp_h_<<data_aux>>"" bhcolsl_ems_sage
data_aux = data_aux + 1;
}
}
Eu gostaria de saber como fazer isso em Shell-script. Se alguém puder dar um help.
Desde já agradeço. Att.
NEWTON TEIXEIRA DO N. JR.
Aviso: "O emitente desta mensagem é responsável por seu conteúdo e endereçamento. Cabe ao destinatário cuidar quanto ao tratamento adequado. Sem a devida autorização, a divulgação, a reprodução, a distribuição ou qualquer outra ação em desconformidade com as normas internas da ELETRONORTE S/A são proibidas e passíveis de sanção disciplinar, cível e criminal. Esta mensagem pode ser monitorada". _______________________________________________ CentOS-pt-br mailing list CentOS-pt-br@centos.org http://lists.centos.org/mailman/listinfo/centos-pt-br
discuss-pt-br@lists.centos.org