There seem to be 2 fundamental misunderstandings here: 1) That other processes cannot see data written to a file until it is flushed to disk; this is not true; while file data is still in file cache, it is visible to other processes. 2) That rsync writes the file on the destination directly; it does not; it writes into a temporary file and renames that file when it is complete. > On Feb 28, 2018, at 10:53 AM, Nagy László Zsolt <gandalf@xxxxxxxxxxxx> wrote: > > >> >> Just use "-ac”; you want -c option to ensure no data corruption during the transfer. Do not delete the file; let Postgres manage that. >> >> Here is a snippet from I script I use for archiving. You also want to make your script returns failure or success correctly. >> >> # SSH Command and options >> SSH_CMD="ssh -o ServerAliveInterval=20 $ARCH_SERVER" >> STS=3 >> >> OUTPUT=$(rsync -ac --rsync-path="mkdir -p $ARCH_DIR && rsync" $XLOGFILE $ARCH_SERVER:$ARCH_DIR/$WALFILE) >> if [ $? == 0 ]; then >> STS=0 >> fi >> >> exit $STS >> -- Scott Ribe https://www.linkedin.com/in/scottribe/ (303) 722-0567