É assim que eu faria uma sincronização unidirecional com ferramentas simples.
No início, tar todo o conjunto de arquivos e copie-os 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 de encaminhamento (da origem para o 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
-N ./filename
diz ao tar para arquivar somente arquivos modificados ou criados depois que filename
foi modificado / criado.
- O uso de uma referência local para o horário confirma que você não comete erros; Se um backup não foi feito por algum motivo, o próximo acumulará
- Você pode configurar esse script como um cronjob entrada na máquina de origem
- Estou assumindo que você usará
scp
com autenticação de chave pública
- Além disso, supondo que você possa alcançar o
backup-server
sempre que esse script for emitido.
- Para ser mais seguro, você pode adicionar verificações para confirmar que o backup foi armazenado e, em seguida, emitir o comando
touch
- Você também pode optar por inserir comandos para expandir os backups sobrepostos aos anteriores no ponto de destino; Ou mantenha arquivos
tar.bz2
incrementais.