Pergunta

Eu tenho um servidor onde eu armazenar dados de Mac A e B Mac.

Eu uso o rsync para manter os arquivos atualizados entre os meus Macs.

Eu corro o seguinte código sem sucesso

#!/bin/zsh

#    to copy files from my server to my folder
rsync -Pav $Masi:~/private/ ~/Dropbox/Courses/math/

#    to  copy files from my folder to my server
rsync -Pav ~/Dropbox/Courses/math $Masi:~/private/

Eu recebo a seguinte mensagem de erro

ssh: connect to host  port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.5]
ssh: connect to host  port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.5]

Eu tenho as chaves SSH no lugar assim que a conexão deve funcionar, desde que eu possa usar scp sem problemas.

Como você pode usar rsync entre o meu servidor e um dos meus Macs?

Foi útil?

Solução

Eu costumava fazer um monte de presente. Apenas fez um teste, algumas sugestões.

  1. Soletrar seu usuário inteira @ padrão de host
  2. Execute os sans conexão SSH o rsync em primeiro lugar, você pode precisar primeiro aprovar a sua impressão digital
  3. Você não parecem passar uma bandeira para proteger atributos estendidos, este pode produzir arquivos no OS X. quebrado Se você não precisa de bifurcações de recursos, você está OK, mas a maioria das vezes você precisa deles.

O meu caso de teste:

$ rsync -Pav ~/Desktop/ me@remote.example.com:~/rsyc-test

Nesse caso, todos os arquivos dentro de ~ / Desktop foram copiados para o servidor remoto, na minha dir casa. Desde o diretório 'rsyc-test' não existisse, ela foi feita para mim. Eu tinha um .app no ??meu desktop, ele fez sobre, surpreendentemente, ele funciona. Até mesmo alguns arquivos .webloc fez isso e parecem trabalho, embora eu não confiar nele.

Gostaria de sugerir a adição na bandeira -E

  -E, --extended-attributes
         Apple specific option  to  copy  extended  attributes,  resource
         forks,  and  ACLs.   Requires at least Mac OS X 10.4 or suitably
         patched rsync.

Eu corri um novo teste, mudou um marcador Interarchy para o meu desktop, eu sei para um fato estes pausa se eles são copiados sans bifurcações de recursos. Correr sem o -E relação com o -E, existe uma diferença de 152 bytes de dados xfered. O primeiro arquivo na máquina remota não funcionou, o arquivo segunda transferidos fez trabalho.

Eu não posso deixar de notar no seu exemplo um de seus caminhos é ~ / Dropbox para que tudo isto pode não importa, já que DropBox, o aplicativo, não em todos os garfos de recursos de suporte no momento, embora eu ouvi há planos para em o futuro.

Você também não enviar na bandeira --delete, se o seu objetivo final é um espelho dos seus dados, você não está recebendo que, se o seu objetivo final é backups que cresce continuamente, mantendo tudo o que foi já na fonte , a falta de --delete é bom.

Outras indicações:
Você pode excluir esses arquivos bobo .DS_Store --exclude '.DS_Store'

Você também pode conjunto rsync-se de forma a ser um verdadeiro espelho, para que você não precisa executar o seu outro comando, consulte a página do manual para mais detalhes.

O meu comando final de trabalho de empurrar a área de trabalho do meu laptop para uma máquina remota:

$ rsync -PEav --delete --exclude '.DS_Store' ~/Desktop/ me@remote.example.com:~/rsycn-test

Outras dicas

Verifique "$ Masi". Se que o nome do host que você está tentando alcançar?

Tente o seguinte comando para depurá-lo:

rsync -e 'ssh -v' -Pav $Masi:~/private/ ~/Dropbox/Courses/math/

O Conexão recusada geralmente acontece quando há um problema de conexão com o controle remoto (por exemplo, firewall).

No seu caso o problema é que variável $Masi está vazio. Se não for variável, o uso Masi.

De acordo com este erro:

ssh: connect to host port 22: Connection refused

Observe o espaço duplo acima após a palavra host.

conectar ao host mensagem não diz para qual host, então você está tentando se conectar ao anfitrião vazio. Por isso, soa como um erro de digitação no nome do host.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top