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.
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.
--Raghav