Meu método de backup rsync é seguro?

Meu método de backup rsync é seguro?

Fiz um script de backup muito simples rsyncque faz backup de algumas pastas em um pendrive. Isso é apenas para backups diários rápidos.

O comando é

rsync -av --delete

seguido pelas --excludeopções e pelos caminhos.

Mas agora me ocorreu que isso possivelmente não é seguro:
o que acontece se meu disco rígido for corrompido e alguns arquivos não puderem mais ser lidos? Excluirá rsyncos arquivos do stick se não conseguir ler a fonte?
Ou, de maneira mais geral: existe algum cenário diferente de "excluir os arquivos do meu disco rígido" que levará à exclusão dos arquivos do pendrive?

Responder1

Em primeiro lugar, --deletea opção pode levar a alguns resultados destrutivos indesejados se você não tiver conhecimento do contexto. Por exemplo, se a origem ficar vazia, todos os arquivos existentes no destino serão removidos ou se alguns arquivos forem removidos da origem, esses arquivos também serão removidos do destino.

O que acontece se meu disco rígido for corrompido e alguns arquivos não puderem mais ser lidos?

Se rsyncnão for possível ler a fonte, será exibida uma mensagem de permissão negada e não fará mais nada. Assim, seus arquivos existentes no destino estarão seguros.

Existe algum cenário diferente de "excluir os arquivos do meu disco rígido" que levará à exclusão dos arquivos do pendrive?

A menos que o seu próprio USB seja corrompido, não, não há cenário em que (você não remove os arquivos da fonte, do disco rígido e) os arquivos existentes no USB sejam excluídos rsynccom --deletea opção.

Teste:

% ls -1 source dest
dest:

source:
foo

% rsync -av --delete source/ dest
sending incremental file list
./
foo

sent 143 bytes  received 38 bytes  362.00 bytes/sec
total size is 16  speedup is 0.09

% ls -1 source dest              
dest:
foo

source:
foo

% chmod 000 source 

% rsync -av --delete source/ dest
sending incremental file list
rsync: change_dir "/source" failed: Permission denied (13)

sent 20 bytes  received 12 bytes  64.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]

% ls -1 source dest              
dest:
foo
ls: cannot open directory source: Permission denied

Responder2

Uma solução fácil para problemas de corrupção e exclusão é empregar um procedimento de backup adequado. Gire uma série de três (ou mais) pendrives USB, usando o 'backup' mais antigo como o stick conectado ao executar este comando uma vez por semana. Dessa forma, se você detectar a corrupção antes de percorrer as unidades USB, poderá recuperá-la. Isso é conhecido como FIFO (First In, First Out).

Existem outros esquemas mais complicados, todos compatíveis com o seu método de backup. Uma cartilha sobre alguns deles está disponível na Wikipedia no seguinte link:

https://en.wikipedia.org/wiki/Backup_rotation_scheme

informação relacionada