My issue is the &f instead of %f at the end. However here's the intent:
if the first command is true (cp %p /data/wal_tmp/%f) then I want the second command to execute (mv /data/wal_tmp/%f /data/wal/%f)
In this case archiver process fail, because there won't be directory called /data/wal_tmp anymore with your your "mv" command.
were moving the file %f not the directory
since both directories are in the same file system the mv is immediate so any process watching for files to show up in /data/wal will never see a partial file
"partial file" ?
Its 16MB file in any case there won't be any partial files, because after completion of writing 16mb file in xlog it will come to archive location else not.
we dont want the log shipper process to ship a file that is still being copied from pg_xlog