forçar o rsync a substituir arquivos no destino, mesmo que sejam mais novos

43

Eu tenho um script de backup rsync que corro, que também restaura os arquivos de onde eles vieram quando eu perguntei. Mas se os arquivos no destino forem mais novos que os do backup quando tentar restaurar, eles não serão substituídos. Eu realmente quero substituir os arquivos mais recentes pelos do backup, mas não vejo uma maneira de fazer o rsync fazer isso.

tldr: existe uma maneira de forçar o rsync a substituir arquivos no destino?

editar: eu estou executando rsync -avhpQuando eu quero restaurar um backup, eu uso o mesmo comando com as opções "para" e "de" trocadas. Por isso, tenta copiar arquivos da unidade de backup para o local em que pertencem ao meu computador.

jedipixel
fonte
14
rsyncsempre substituirá os arquivos no destino, a menos que você diga para não fazer isso (opção -u, --update). Verifique seus argumentos de linha de comando.
Scal
Você pode compartilhar seu comando rsync real? O Rsync substituirá os arquivos mais antigos pelos mais recentes, portanto é mais provável que você compare os arquivos apenas com o carimbo de data e hora, e as datas estão um pouco fora de sintonia entre os dois computadores.
Slm
Tentei usar touchpara tornar os arquivos que desejo substituir "mais antigos" que meu backup, mas ele ainda não substitui os existentes na minha pasta pessoal.
jedipixel
Talvez '-I --modify-window = 999999999' funcione para você?
Jelle foks

Respostas:

47

O manual diz:

-I, --ignore-times   don't skip files that match size and time

Com mais detalhes:

-I, --ignore-times

Normalmente, o rsync ignora qualquer arquivo que já tenha o mesmo tamanho e tenha o mesmo registro de data e hora de modificação. Essa opção desativa esse comportamento de "verificação rápida", fazendo com que todos os arquivos sejam atualizados.

Raio
fonte