rsync --ignore-times parâmetro não funciona no Ubuntu 16.04

0

Eu quero implementar um script de backup abrangente com base em rsync , então estou apenas experimentando agora para decidir os parâmetros corretos com base na minha exigência. Basicamente, eu quero que qualquer arquivo alterado deva ser copiado da origem para o destino, independentemente de seu tempo de modificação (ou seja, se o arquivo de origem é mais antigo / mais recente que o arquivo de destino, ele deve ser copiado se o conteúdo for diferente). No entanto, não está funcionando:

../src/test.txt
../dst/test.txt

Acima é a estrutura da pasta. Quando executei pela primeira vez o comando abaixo, copiei a pasta test.txt from src para dst.

rsync -avh --ignore-times src/ dst/

Em seguida, modifiquei o conteúdo de src / test.txt e executei o comando acima novamente, e desta vez também copiou o arquivo atualizado para a pasta dst.

No entanto, eu modifiquei o test.txt na pasta dst e executei o comando acima, mas desta vez, ele não funcionou e não copiei o arquivo da pasta src / para dst /. Mas considerando esta resposta , deveria ter funcionado como eu adicionei o parâmetro --ignore-times .

Isso é um bug no Ubuntu, ou estou fazendo algo errado? Qual parâmetro devo adicionar para que o arquivo seja sempre copiado da origem para o destino quando o conteúdo for diferente (mesmo quando o arquivo de destino for mais recente)?

    
por Prahlad Yeri 22.01.2018 / 03:02

2 respostas

1

--archive é igual a -rlp t goD enquanto -t significa

-t, --times
    This tells rsync to transfer modification times along with the files and update them on the remote system

Mas você poderia combinar isso com --no-OPTION como este

rsync -avh --no-t --ignore-times src/ dst/

e deve funcionar perfeitamente

EDIT: na verdade, o --ignore-times é supérfluo, isso é suficiente

rsync -avh --no-t src/ dst/
    
por Robert Riedl 22.01.2018 / 12:08
0

Por algum motivo, o modo --archive ou a parece não funcionar com os parâmetros --ignore-times ou --checksum . No entanto, o modo de cópia recursiva simples ( --recursive ou r ). Então, no meu caso, o seguinte fez o trabalho perfeitamente:

rsync -vcr src/ dst/
    
por Prahlad Yeri 22.01.2018 / 09:18