Digamos que eu tenha um diretório com arquivos:
a b c d
Então copio com rsync:
rsync -av --delete -P --backup --backup-dir=sample-$(date +%a-%H%M) ../sample /backups
Eu entro em /backup/sample:
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a
Mas se eu criar um diretório:
a b c d newdir
Eu só entro em /backup/sample:
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a
drwxr-xr-x 2 sergio sergio 8192 feb 17 18:52 newdir
No entanto, se eu excluir um arquivo:
/backups
├── sample
│ ├── a
│ ├── b
│ ├── c
│ └── newdir
└── sample-sáb-1855
└── sample
└── d
Então, por que o rsync não cria uma 'data de amostra...' na primeira modificação (criação de newdir). Esse é o comportamento esperado?
Responder1
Dersync(1)
-b, --backup
Com esta opção,arquivos de destino preexistentessão renomeados à medida que cada arquivo é transferido ou excluído. Você pode controlar para onde vai o arquivo de backup e qual sufixo (se houver) será anexado usando o--backup-dire--sufixoopções.
Nas duas primeiras vezes, apenas novos arquivos são transferidos, não havendo necessidade de criação de backups.
Na terceira chamada, o arquivo sample/d
é removido e agora a opção --backup
diz ao rsync para criar um backup do arquivo sample/d
. Este backup é criado no diretório de backup /backups
+ sample-$(date +%a-%H%M)
.
O mesmo aconteceria se você modificasse algum dos arquivos existentes. Por exemplo, alterar o arquivo sample/a
criaria uma cópia de backup a
no diretório de backup /backups/sample-$(date +%a-%H%M)
.
Se você deseja criar um backup com versão, você prefere fornecer um diretório de destino diferente cada vez que o rsync for executado
rsync -av --delete -P ../sample /backups/sample-$(date +%a-%H%M)