Обсуждение: pgsql: Add 'basebackup_to_shell' contrib module.
Add 'basebackup_to_shell' contrib module. As a demonstration of the sort of thing that can be done by adding a custom backup target, this defines a 'shell' target which executes a command defined by the system administrator. The command is executed once for each tar archive generate by the backup and once for the backup manifest, if any. Each time the command is executed, it receives the contents of th file for which it is executed via standard input. The configured command can use %f to refer to the name of the archive (e.g. base.tar, $TABLESPACE_OID.tar, backup_manifest) and %d to refer to the target detail (pg_basebackup --target shell:DETAIL). A target detail is required if %d appears in the configured command and forbidden if it does not. Patch by me, reviewed by Abhijit Menon-Sen. Discussion: http://postgr.es/m/CA+TgmoaqvdT-u3nt+_kkZ7bgDAyqDB0i-+XOMmr5JN2Rd37hxw@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/c6306db24bd913375f99494e38ab315befe44e11 Modified Files -------------- contrib/Makefile | 1 + contrib/basebackup_to_shell/Makefile | 19 + contrib/basebackup_to_shell/basebackup_to_shell.c | 419 ++++++++++++++++++++++ doc/src/sgml/basebackup-to-shell.sgml | 69 ++++ doc/src/sgml/contrib.sgml | 1 + doc/src/sgml/filelist.sgml | 1 + 6 files changed, 510 insertions(+)
Hi, On 2022-03-15 17:33:12 +0000, Robert Haas wrote: > Add 'basebackup_to_shell' contrib module. > > As a demonstration of the sort of thing that can be done by adding a > custom backup target, this defines a 'shell' target which executes a > command defined by the system administrator. The command is executed > once for each tar archive generate by the backup and once for the > backup manifest, if any. Each time the command is executed, it > receives the contents of th file for which it is executed via standard > input. > > The configured command can use %f to refer to the name of the archive > (e.g. base.tar, $TABLESPACE_OID.tar, backup_manifest) and %d to refer > to the target detail (pg_basebackup --target shell:DETAIL). A target > detail is required if %d appears in the configured command and > forbidden if it does not. > > Patch by me, reviewed by Abhijit Menon-Sen. > Modified Files > -------------- > contrib/Makefile | 1 + > contrib/basebackup_to_shell/Makefile | 19 + > contrib/basebackup_to_shell/basebackup_to_shell.c | 419 ++++++++++++++++++++++ > doc/src/sgml/basebackup-to-shell.sgml | 69 ++++ > doc/src/sgml/contrib.sgml | 1 + > doc/src/sgml/filelist.sgml | 1 + > 6 files changed, 510 insertions(+) Seems like this ought to have at least some basic test to make sure it actually works / keeps working? Greetings, Andres Freund
On Tue, Mar 15, 2022 at 3:04 PM Andres Freund <andres@anarazel.de> wrote: > Seems like this ought to have at least some basic test to make sure it > actually works / keeps working? Wouldn't hurt, although it may be a little bit tricky to getting it work portably. I'll try to take a look at it. -- Robert Haas EDB: http://www.enterprisedb.com