Estou tentando fazer backup de um disco rígido com falha e o rsync seria ideal devido aos recursos que possui, como indicador de progresso e capacidade de parar e retomar. O único problema que estou tendo é que, embora o atributo de data de modificação do arquivo seja preservado, os diretórios obtêm um novo atributo de data. Isso causa problemas à medida que classifico muitos arquivos por data para saber o que foi adicionado mais recentemente. É possível preservar o atributo de modificação da data do diretório com rsync:
sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/
A opção -t (incluída com -a) preserva os atributos do arquivo, mas não menciona diretórios. Existe algum requisito especial para propriedade/permissões da partição /mnt/new para preservar certos atributos com sucesso?
Responder1
O horário da última modificação dos diretórios é preservado por -a
, mas você só poderá ver isso quando o rsync terminar. Ele não tenta definir a hora em diretórios que são constantemente atualizados com novos arquivos.
Você pode testar isso sozinho. Crie um diretório e defina a data para ontem e copie-o com rsync:
$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2 40 Nov 4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2 40 Nov 3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 3 14:41 d2/d1/
O diretório d2/d1 tem a data de ontem. Podemos substituí-lo e ver se o rsync corrige as coisas:
$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 3 14:41 d2/d1/
rsync -i
mostra que o carimbo de data/hora está errado em d2/d1 e corrige.
Responder2
Acabei escrevendo sobre esse assunto caso seja útil para alguém. Praticamente todos os metadados podem ser preservados com o Rsync conforme explicado na postagem.
Substitua unidades de armazenamento por Rsync no Arch Linux
Aqui está um trecho para sincronizar tudo:
sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/
Responder3
rsync -avz
está fazendo tudo por mim
- v
é para verboso
- a
é para modo de arquivamento (semelhante a -rlptgoD)
- z
é para usar compactação