通过 ssh 或其他方式进行 Rsync?

Dan*_*ark 12 linux unix rsync macos

我一直在尝试在 OSX 到 Linux 或 Unix 机器上使用 rsync,我对此没有太多控制权。我一直在做这样的事情

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 
Run Code Online (Sandbox Code Playgroud)

返回的错误是:

bash: rsync: command not found rsync: 连接意外关闭(到目前为止收到 0 个字节)[receiver] rsync 错误:在 /SourceCache/rsync/rsync-37.3/rsync/io.c(452) 找不到远程命令(代码 127) ) [接收器=2.6.9]

但是,在阅读文档后,我开始认为我实际上需要在远程主机上安装一个 rsync 守护程序。

  1. 我必须在远程主机上安装 rsync 服务器吗?
  2. 免费替代品——GUI 或非 GUI——不需要在远程主机上安装任何东西

谢谢!

Tob*_*obu 22

您需要在服务器上使用 rsync 命令,但不需要运行守护程序。

得到一个rsync的二进制文件在服务器上的工作,把它放在你的家,并且这个标志添加到您的命令行:--rsync-path=/home/user/path/to/rsync

如果不想将 rsync 复制到服务器,可以使用 scp 或 sshfs。

sshfs user@host ~/sync/user-host
rsync -av ~/local-dir ~/sync/user-host/remote-dir
Run Code Online (Sandbox Code Playgroud)

在这种情况下 rsync 将完全在本地运行,但更改将传播到服务器。


mpe*_*ez0 6

您需要在远程主机上安装 rsync —— 不一定是 rsync 服务器(我相信它无论如何都不会处理 ssl 连接),但是本地机器上的 rsync 需要与远程机器上的 rsync 通信。您正在使用 ssh 将两者联系起来。

假设远程机器上确实存在 rsync,它不在您登录 shell 的 ssh 的默认搜索路径中。根据您对遥控盒的偏好和权限,您可以尝试

  • 使用 --rsync-path= 选项
  • 更改远程 ssh shell 的默认 PATH
  • 在远程 ssh shell 中为 rsync 添加别名
  • 将执行的远程命令更改为 rsync 的绝对路径

或类似的东西。如果远程主机上不存在作为可执行文件(副服务器)的 rsync,则必须添加它。