Você pode configurar o rsync para não excluir arquivos estranhos. Por padrão, isso não acontece. Então, se todos os arquivos saírem do drive-a, eles devem ficar bem.
Não sei como fazer essa pergunta sem explicar. Digamos que eu use rsync para fazer backup da unidade-a para a unidade-b. O drive-a falha e todos os dados são perdidos quando o rsync foi desligado, viu que o drive-a havia sido apagado e apagou o drive-b.
Estou tentando escrever um script rsync para que isso não aconteça. isso realmente aconteceu com alguém que eu conheço, então é possível.
Você pode configurar o rsync para não excluir arquivos estranhos. Por padrão, isso não acontece. Então, se todos os arquivos saírem do drive-a, eles devem ficar bem.
Você pode tentar usar o rsnapshot . Isso usa o rsync para criar um backup baseado em hardlinks. No servidor, vários backups podem ser acessados sem desperdício de espaço. Portanto, quando a unidade A for apagada, somente o backup mais recente terá os dados "apagados", mas os snapshots antigos ainda manterão os dados.
Outra coisa a fazer é usar as opções --backup
e --backup-dir
diretamente com 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.
Note that if you don't specify --backup-dir, (1) the --omit-dir-times option will be implied, and (2) if --delete is also in effect (without --delete-excluded), rsync will add a lqprotectrq filter-rule for the backup suffix to the end of all your existing excludes (e.g. -f "P ~"). This will prevent previously backed-up files from being deleted. Note that if you are supplying your own filter rules, you may need to manually insert your own exclude/protect rule somewhere higher up in the list so that it has a high enough priority to be effective (e.g., if your rules specify a trailing inclusion/exclusion of oqcq, the auto-added rule would never be reached).
--backup-dir=DIR
In combination with the --backup option, this tells rsync to store all backups in the specified directory on the receiving side. This can be used for incremental backups. You can additionally specify a backup suffix using the --suffix option (otherwise the files backed up in the specified directory will keep their original filenames).
No cenário que você descreveu (unidade de origem com falha), o rsync não excluirá , porque:
If the sending side detects any I/O errors, then the deletion of any files at the destination will be automatically disabled. This is to prevent temporary filesystem failures (such as NFS errors) on the sending side causing a massive deletion of files on the destination. You can override this with the --ignore-errors option.
O único meio de acabar com um alvo limpo depois da falha da fonte é:
Enfim, eu sigo a sugestão de usar o rsnapshot + hard links. Eu uso esta configuração para fins de backup e é muito conveniente.