Andrew Dunstan wrote:
>
> The docs contain the following example of an archive_command for use
> with standalone hot backup:
>
> test -f /var/lib/pgsql/backup_in_progress && cp -i %p
> /var/lib/pgsql/archive/%f </dev/null
>
> Unfortunately, as I found out when I tried it, this command returns a
> non-zero (on Linux/bash) when the backup_in_progress file doesn't exist,
> which means that we keep accumulating WAL files when we should be
> recycling them.
>
> ISTM it would be better to use this:
>
> if test -f /var/lib/pgsql/backup_in_progress ; then cp -i %p
> /var/lib/pgsql/archive/%f </dev/null ; fi
>
> which only returns non-zero if the copy fails.
>
> If there's no objection I'll patch the docs accordingly - should they be
> backpatched also?
Yea, that example was wrong. Good catch. I did found a cleaner way to
implement it though:
archive_command = 'test ! -f /var/lib/pgsql/backup_in_progress || cp -i %p /var/lib/pgsql/archive/%f < /dev/null'
That keeps the one-line format rather than the 'if' block with semicolons
required. I have applied this to CVS.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +