Estou fazendo uma sincronização entre uma pasta local e uma remota. Aconteceu que eu perdi um arquivo por um comando estúpido.
Estou acostumado a uníssono e à maneira como você confirma ("vai?") Antes de fazer a transferência real do arquivo.
Existe essa opção com o rsync? (sem uníssono no lado do servidor)
Obrigado!
Você pode usar a opção -n com o rsync para executar uma execução a seco. O rsync lhe dirá quais operações ele executaria sem realmente executá-las. Se você estiver satisfeito com os resultados, execute novamente sem a opção -n.
fonte
Você pode fazer o rsync fazer backup dos arquivos sobrescrevendo, usando a opção --backup,
após a execução do rsync, você pode verificar se há arquivos de backup-dir e perguntar um por um se eles precisam ser restaurados.
fonte
Infelizmente, ainda não existe um método incorporado no Rsync.
A solução de Mike Fitzpatrick funcionará bem, no entanto, se você tiver uma árvore de diretórios muito grande, poderá fazer algo que não faça o rsync passar por todos os arquivos novamente
EDIT: Há também um erro em que ele não exclui um arquivo de destino ... quanto mais eu olho para ele, esta solução está quebrada ... Estou deixando de lado porque pode funcionar no seu caso e também se alguém quiser para fixar isso. Além disso, alguém deve enviar uma solicitação formal de recurso para https://bugzilla.samba.org/enter_bug.cgi?product=rsync
Eu escrevi este script:
Tente colar o script em um arquivo chamado
rsync-confirm.bash
Então
chmod +x rsync-confirm.bash
Então
./rsync-confirm.bash -rvh /etc/ /tmp/etc/
Esse script pode ser um pouco complicado, notei que ele realmente não gosta se você não tiver uma barra no diretório de origem ...
fonte