Esta é uma das muitas coisas que rsync
pode fazer.
Se você estiver usando uma versão de rsync
lançada nos últimos anos, ¹ sua sintaxe de comando básica é semelhante a scp
: ²
$ rsync -r local-dir remote-machine:path
Isso copiará local-source
e seu conteúdo para $HOME/path/local-dir
na máquina remota, criando os diretórios necessários .³
rsync
tem algumas restrições aqui que podem afetar se isso funcionará em sua situação específica. Ele não criará vários níveis de diretórios remotos ausentes, por exemplo; ele só criará até um nível ausente no controle remoto. Você pode contornar isso facilmente precedendo o comando rsync
com algo assim:
$ ssh remote-host 'mkdir -p foo/bar/qux'
Isso criará a árvore $HOME/foo/bar/qux
se ela não existir. Não vai reclamar ou fazer qualquer outra coisa ruim se já existir .
rsync
às vezes tem outros comportamentos surpreendentes. Basicamente, você está pedindo para descobrir o que você queria copiar, e suas suposições podem não corresponder às suas suposições. Experimente e veja. Se ele não se comportar como esperado e você não puder ver o motivo, publique mais detalhes sobre as configurações de diretório locais e remotas e forneça o comando que você tentou.
Notas de rodapé :
-
Antes de
rsync
2.6.0 (1 de janeiro de 2004), era necessário que o sinalizador-e ssh
fizesse com que ele se comportasse comoscp
, porque o padrão era o obsoleto Protocolo RSH . -
scp
ersync
compartilham alguns sinalizadores, mas há apenas um pouco de sobreposição. -
Ao usar
SSH
como o protocolo de transferência,rsync
usa os mesmos padrões. Portanto, assim comoscp
, assumirá que há um usuário com o mesmo nome que seu usuário local na máquina remota por padrão.