我有一台服务器,用于存储来自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?
答案 0 :(得分: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/