Preservar data de modificação em diretórios/pastas com rsync

Preservar data de modificação em diretórios/pastas com rsync

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 -imostra 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 -avzestá fazendo tudo por mim
- vé para verboso
- aé para modo de arquivamento (semelhante a -rlptgoD)
- zé para usar compactação

informação relacionada