无法在我的服务器和Mac之间进行rsync

时间:2009-05-02 01:08:47

标签: rsync

我有一台服务器,用于存储来自Mac A和Mac B的数据。

我使用rsync来保持我的Mac之间的文件更新。

我运行以下代码失败

#!/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/

我收到以下错误消息

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]

我有ssh密钥,因此连接应该可以正常工作,因为我可以毫无问题地使用scp。

如何在我的服务器和我的某台Mac之间使用rsync?

2 个答案:

答案 0 :(得分:4)

我曾经做过很多这样的事情。刚刚进行了测试,提出了一些建议。

  1. 拼出您的整个用户@ host pattern
  2. 首先运行ssh连接sans rsync,您可能需要先批准指纹
  3. 您似乎没有传递标志来保护扩展属性,这可能会在OS X上产生损坏的文件。如果您不需要资源分叉,那么您可以,但大多数情况下您确实需要它们。
  4. 我的测试用例:

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

    在这种情况下,〜/ Desktop中的所有文件都被复制到我家的目录中的远程主机上。由于目录'rsyc-test'不存在,它是为我而制作的。我的桌面上有一个.app,它完成了,令人惊讶的是,它有效。即使是一些.webloc文件也可以使用,但似乎无法使用。

    我强烈建议添加-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.
    

    我运行了一个新的测试,将一个Interarchy书签移动到我的桌面,我知道如果他们被复制没有资源分叉这些中断。在没有-E和-E的情况下运行,在xfered数据中有152个字节的差异。远程计算机上的第一个文件不起作用,第二个传输文件确实有效。

    我不禁注意到你的例子中你的一条路径是〜/ Dropbox所以这可能都无关紧要,因为DropBox这个应用程序目前根本不支持资源分叉,虽然我听说有计划进入未来。

    你也没有发送--delete标志,如果你的最终目标是你的数据的镜像,你就没有得到它,如果你的最终目标是不断增长的备份,保留源头上的所有内容缺少--delete是好的。

    其他说明:
    您可以排除那些愚蠢的.DS_Store文件     --exclude'.DS_Store'

    您还可以将rsync设置为真正的镜像,因此您无需运行其他命令,有关详细信息,请参见手册页。

    我最后的工作命令是将笔记本电脑的桌面推到远程机器上:

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

答案 1 :(得分:1)

检查“$ Masi”。这是你想要达到的主机名吗?

尝试以下命令进行调试:

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