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
rsync2.6.0 (1 de janeiro de 2004), era necessário que o sinalizador-e sshfizesse com que ele se comportasse comoscp, porque o padrão era o obsoleto Protocolo RSH . -
scpersynccompartilham alguns sinalizadores, mas há apenas um pouco de sobreposição. -
Ao usar
SSHcomo o protocolo de transferência,rsyncusa 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.