Em 27 de outubro de 2011 13:13, Flavio Henrique Araque Gurgel <fha...@gmail.com> escreveu: >> Em outras palavras, "veja se já existe o arquivo (%f) no destino >> (/var/lib/pgsql/archives/) e *se não existir* (test ! -f ...) copie o >> arquivo a ser arquivado (%p) para lá". > > E pra quê você faz isso? > Não vi necessidade nenhuma. O PostgreSQL só copia o arquivo *uma* vez > e o faz até garantir que *foi copiado*. > Bastaria o comando "cp".
Sim, bastaria um 'cp' com a opção '-i' o que deixaria o comando mais ou menos como um 'cp -i %p /archives/%f < /dev/null', o que não é portável para algumas plataformas, onde no caso de ele não consegui substituir ele retorna 0, e o PostgreSQL acaba "achando" que rodou com sucesso, o que não ocorreu. Um exemplo para ficar mais claro, reproduzido num RHEL4 e num Ubuntu 10.04. $ echo abc > arquivo1 $ echo def > arquivo2 $ /bin/cp -i arquivo2 arquivo1 < /dev/null # a documentação *recomendava* isso $ echo $? Acima deveria retornar um codigo diferente de 0 já que a copia anterior não foi feita, mas ele retorna '0' $ diff -s arquivo1 arquivo2 1c1 < abc --- > def A própria documentação foi modificada *sugerindo* o uso do "test ! -f" para que possam ser evitadas situações como esta. -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral