Se eu entendi bem sua solicitação, você só precisa de uma opção de rsync: --backup
(ou -b
).
Dando uma olhada no manpage do rsync:
-b, --backup
With this option, preexisting destination files are renamed as each file is transferred or deleted. You can control where the backup file goes and what (if any) suffix gets appended using the --backup-dir and --suffix options.
Portanto, se você estiver planejando transferir o arquivo foo.txt
para a pasta /foo
, de Host1
para Host2
, seu comando pode ser:
rsync -b --suffix=".$(date +%Y-%m-%d)" -e "ssh -p $SSH_SERVER_PORT" foo.txt remoteuser@Host2:/foo/foo.txt
Cada vez que você copiar o arquivo " foo.txt
" no Host2
, você receberá um novo arquivo " foo.txt.YYYY-MM-DD
".
Considere usar a opção --backup-dir
para manter todas as versões de backup do arquivo no mesmo lugar.
- Preste atenção: você terá apenas 1 cópia de backup por dia para cada arquivo, devido à sua escolha de sufixo. Se você quiser manter "todas" as cópias de backup, considere usar outra opção de sufixo (data
+%Y-%m-%d_%H%M%s
poderia ser uma ideia)