Estou trabalhando em um rsync
script para replicação de diretório. Eu sincronizo apenas arquivos ou diretórios novos e modificados, mas não estou gostando do fato de que ele está copiando arquivos ou diretórios renomeados como um novo arquivo ou diretório, mantendo os arquivos não sincronizados. Também defini um limite de largura de banda de 1 MB, pois ele será executado durante o horário comercial. Aqui está o meu script:
rsync -zvru --bwlimit=1024 /mymounts/test1/ /mymounts/test2
Como posso manter os arquivos e diretórios sincronizados se alguém renomeia algo, mas ainda copia apenas arquivos novos ou modificados? Aqui estão os arquivos em questão
ls "/mymounts/test1/some stuff"
new directory newfile1.txt newfile3.txt renamedFile.txt
ls "/mymounts/test2/some stuff"
new directory newfile1.txt newfile2.txt newfile3.txt renamedFile.txt
Ou haveria uma maneira de mover os arquivos renomeados para outro diretório, digitando
/mymounts/VerControl
:?
rsync
artigo básico , o FWIW. Tudo sobre oVocê pode querer olhar para a
-y | --fuzzy
opção rsync. Fora isso, o rsync não tem como rastrear as renomeações, então você acabará transferindo o arquivo renomeado.Na página de manual do rsync:
fonte
--fuzzy
, considere acoplá-lo com--delete-delay
, como "o rsync por padrão faz a--delete-before
, removendo o arquivo base antes que ele possa ser copiado / movido" . Fonte: Sonia HamiltonVocê não pode.
Rsync tem três modos,
No entanto, esses três modos têm duas subcategorias,
O Rsync não controla quais arquivos são renomeados, não possui estado. Em vez disso, considere copiar todos os arquivos e excluir os que não deseja. Você não pode ter uma lista de permissões que pode ser alterada, pode ter uma lista negra.
fonte
date +%Y%m%d%k%M%S
enfim, posso obter o sufixo =date +%Y%m%d%k%M%S
.ORIGINALSUFFIX?Até onde eu sei,Veja a resposta do artyom .rsync
não consigo reconhecer a renomeação de arquivos Os novos arquivos terão que ser transferidos novamente.Para excluir os arquivos perdidos, use a
--delete
opçãoAlém disso, para o espelhamento, eu recomendaria que você usasse
-a
( archive ), que usa algumas opções interessantes.Dê uma olhada no
man 1 rsync
para detalhes.fonte