É assim que eu faria uma sincronização unidirecional com ferramentas simples.
No início, tar todo o conjunto de arquivos e copiá-los para o ponto de destino.
Além disso, configure um marcador no diretório base.
touch /Source/base/directory/last-sync-time.txt
Agora, queremos continuar sincronizando da origem ao destino.
No próximo intervalo de tempo para sincronização direta (da origem ao destino),
# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 user@backup-server:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2
- O tar
-N ./filename
informa para arquivar apenas arquivos modificados ou criados depois que foi modificado / criado.
filename
- Usando uma referência local para o tempo confirma que você não cometer erros; se um backup não foi feito por algum motivo, o próximo irá acumulá-lo
- Você pode configurar esse script como uma entrada do cronjob na máquina de origem
- Eu estou supondo que você vai usar
scp
com autenticação de chave pública
- Além disso, supondo que você pode alcançar o
backup-server
sempre que este script é emitido.
- Para ser mais seguro, você pode adicionar verificações para confirmar se o backup foi armazenado e, em seguida, emitir o
touch
comando
- Você também pode optar por inserir comandos para expandir os backups sobrepostos aos anteriores no ponto de destino; Ou mantenha
tar.bz2
arquivos incrementais .