Atualmente, eu só faço RSync Directories
como:
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
Então, como faço para rsync
um único arquivo, como /var/www/public_html/.htaccess
?
Você faz isso da mesma forma que faria com um diretório, mas especifica o caminho completo para o nome do arquivo como a fonte. No seu exemplo:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
Sintaxe básica
Exemplo
Consulte Mais informação
fonte
A resposta de Michael Place funciona muito bem se, em relação ao diretório raiz da origem e do destino, todos os diretórios no caminho do arquivo já existem.
Mas e se você quiser sincronizar um arquivo com este caminho de origem:
/ source-root / a / b / arquivo
para um arquivo com o seguinte caminho de destino:
/ target-root / a / b / arquivo
e os diretórios um e b não existe?
Você precisa executar um comando rsync como o seguinte:
fonte
Até agora, duas das respostas não estão certas, eles obterão mais de um arquivo, e o outro não é tão simples quanto poderia ser, aqui está uma resposta mais simples IMO.
O seguinte obtém exatamente um arquivo, mas você deve criar o diretório dest com mkdir. Esta é provavelmente a opção mais rápida:
Se houver apenas uma instância do arquivo em / remote / path, o rsync pode criar diretórios para você se você fizer o seguinte. Isso provavelmente levará um pouco mais de tempo porque pesquisa mais diretórios. Além disso, criará diretórios vazios para diretórios em / remote / path que não estão em ./local
Tenha em mente que a ordem de --include e --exclude é importante.
fonte