rsync adicionando diretório extra ao comando

1

Estou programando um comando rsync e, no momento, estou tentando fazer algo como ...

rsync -av -e ssh $DATASTORE/usr/local/somepath $DESTDIR/usr/local/someotherpath/

se eu fizer eco de $ DATASTORE, mostra

echo $DATASTORE
[email protected]

Se eu executar o comando, obtenho

/vagrant/[email protected]/usr/local/somepath no suck file or diectory

Eu não entendo muito bem, porque a adição / vagrant dele (/ vagrant é o diretório atual em que estou), e de onde isso veio? Eu estou supondo que eu não consigo fazer isso, mas eu gostaria de entender o que está fazendo e como eu posso contorná-lo (se for seguro)?

    
por Ian 29.05.2015 / 21:11

3 respostas

2

Como outros apontaram, você precisa separar a especificação do host da especificação do caminho com dois pontos ( : ) -

rsync -av -e ssh "$DATASTORE":/usr/local/somepath "$DESTDIR"/usr/local/someotherpath/

Também indicarei que isso colocará somepath em seu diretório de destino "$DESTDIR"/usr/local/someotherpath , para que você fique com "$DESTDIR"/usr/local/someotherpath/somepath . Se isso não for um comportamento desejado, mas você quiser o conteúdo de somepath no diretório someotherpath de destino, acrescente uma barra ao caminho de origem:

rsync -av -e ssh "$DATASTORE":/usr/local/somepath/ "$DESTDIR"/usr/local/someotherpath/
    
por 29.05.2015 / 22:23
2

Tente substituir

$DATASTORE

por

${DATASTORE}:
    
por 29.05.2015 / 21:24
1

Você está fazendo tudo certo. Só falta um cólon aqui. Tente isto:

rsync -av -e ssh $DATASTORE:/usr/local/somepath $DESTDIR/usr/local/someotherpath/
    
por 29.05.2015 / 21:28

Tags