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
datais 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
thatfile when it is complete.
> On Feb 28, 2018, at 10:53 AM, Nagy László Zsolt <gandalf@shopzeus.com> wrote:
>
>
>>
>> Just use "-ac”; you want -c option to ensure no data corruption during the transfer. Do not delete the file; let
Postgresmanage 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