É rsync --delete seguro em caso de falha de disco

3

Eu tenho dois discos rígidos de dados no meu servidor Linux e uso o segundo como backup para um primeiro disco.
Eu uso o rsync para esse propósito. Um exemplo seria:

rsync -r -v --delete /media/disk1/ /media/disk2/

O que isto faz é que copia todos os arquivos / diretórios de / media / disk1 / para / media / disk2 / , mas também elimina qualquer diferença. Por exemplo, digamos que os arquivos A e B, mas não o arquivo C, estão em disk1 , e em disk2 não há arquivos A e B, mas há C. O resultado seria que após o comando em disk2 eu teria os arquivos A e B, mas o arquivo C seria deletado, assim como em disk1 .

Agora, um cenário bastante desastroso passou pela minha cabeça; E se disk1 morre, o sistema continua a funcionar desde que os arquivos do sistema estão no disco do sistema, mas quando o rsync tenta fazer backup dos meus dados no disco2 do disco1 quebrado, ele exclui todos os arquivos arquivos do disk2 porque ele não pode ler nada no disk1 .

Este é um cenário possível, ou existe alguma proteção dele em rsync ?

    
por enedene 22.06.2011 / 01:49

2 respostas

3
Realisticamente, nesse cenário, o kernel iria pirar, e você receberia um monte de erros de E / S de disco antes do rsync excluir qualquer coisa. Mas então se você fosse reiniciar, é possível que / media / disk1 estaria vazio e desmontado ... Então ...

Em seu script rsync, certifique-se de não executar o rsync se não houver arquivos em / media / disk1. Uma maneira fácil de fazer isso seria:

ls /media/disk1/SomeFileYouKnowExists || exit
rsync ....

Isso fará com que o script saia antes de executar o rsync, caso o arquivo de destino não exista.

    
por 22.06.2011 / 01:55
2

Do manual do rsync:

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 from causing a massive deletion of files on the destination. You can override this with the --ignore-errors option.

    
por 22.06.2011 / 04:02