Estou tentando configurar o rsync para sincronizar meu servidor web principal com o servidor remoto, adicionando o arquivo recém-gerado ao posterior.
Aqui está o comando que eu uso:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Mas parece que o servidor web realmente transfere todos os arquivos, apesar do sinalizador '--update'. Eu tentei combinações diferentes de sinalizadores (por exemplo, omitindo '-a' e usando '-vv'), mas nenhuma ajudou. Então, querendo saber como posso modificar o comando rsync para enviar apenas os arquivos adicionados recentemente. obrigado
rsync /foo/bar remoteuser@remotehost:/foo/bar
-a
opções implícitas (proprietário, grupo, permissões, ...), deve ser a causa do nosso problema.-c
opção. Ignora os arquivos existentes com base em uma soma de verificação, em vez do tempo ou tamanho da modificação.Respostas:
De
man rsync
:--update
faz algo um pouco diferente, e é provavelmente por isso que você está obtendo resultados inesperados (consulteman rsync
):fonte
--ignore-existing
significa não transferir arquivos que existem no receptor ou não transferir arquivos se algum arquivo / pasta com o mesmo nome existir no receptor?No meu caso, tive problemas semelhantes, tendo todos os arquivos transferidos em vez de apenas os modificados / novos. Eu resolvi isso usando parâmetros
-t
(em vez de-a
) e-P
(equivalente a--partial --progress
):Isso transfere apenas novos arquivos e arquivos já existentes, mas modificados:
-a
funciona demais, como a sincronização de ID de grupo e usuário, que no meu caso não funciona, pois tenho diferentes usuários e grupos nos meus sistemas de origem e de destino.Os parâmetros em detalhes:
-h
: números legíveis por humanos-v
: verbose-r
: recursão em diretórios-P
:--partial
(mantém arquivos parcialmente transferidos) +--progress
(mostra o progresso durante a transferência)-t
: preservar os tempos de modificaçãofonte
-rlptgoD
, de modo que a permissão se não flattended, grupos e proprietário preservada -não meu backup play-seguro típico ...)Pela minha experiência com o rsync, uma cópia de partição de 1 TB é muito grande para ser eficiente. Leva o rsync para sempre para processá-lo. Em vez disso, faça-o por subdiretórios. Ou seja, execute o rsync para cada subdiretório principal. Vai muito mais rápido se não precisar manipular dezenas de milhares de arquivos.
fonte
Experimentar
fonte